Examples have previously relied on the (really: some) nightly toolchain
to be the default. As that, in practice, is a problematic assumption,
the latest toolchain to use is now determined programmatically, and that
is set explicitly on the examples that use nightly.
Workaround-For: https://github.com/rust-lang/rustup/issues/3015
This better reflects the current state of things. Setting the nightly
toolchain as default works better for new users with the current
settings of the examples. Not pinning the C2Rust version -- we don't pin
the nightly version in the docs either, and breakage is easy to track
given the container builds as a base line.
- Provide a new tool to list and filter TTYs
- Change `Makefile.include` to use `$(RIOTTOOLS)/usb-serial/ttys.py`
instead of `$(Q)$(RIOTTOOLS)/usb-serial/list-ttys.sh` to implement
`make list-ttys`
- Extend `makefiles/tools/serial.inc.mk` to allow using the most recent
port by passing `MOST_RECENT_PORT=1` as environment variable or
parameter to make
Co-authored-by: chrysn <chrysn@fsfe.org>
Co-authored-by: Koen Zandberg <koen@bergzand.net>
Fixes two problems:
- Section "Usage" which describes the usage of docker is on heading level 1 but has to be on heading level 2
- Section "Setup" has only one subsection. A second subsection was added. Now, the section "Setup" has two subsections, one that describes the installation of docker and one that describes downloading and testing of the RIOT docker build image.
The duplication happened already in the initial version, and when
[17504] had the `--locked` added, the opportunity to remove the
duplication was missed.
[17504]: https://github.com/RIOT-OS/RIOT/pull/17504
The `--locked` is required since dependencies increased their MSRV to
something later than C2Rust's fixed nightly. That was already reflected
in the riotdocker installation steps, but not here where the line was
taken from upstream's docs.
Closes: https://github.com/RIOT-OS/RIOT/issues/17492
If we get a large (e.g. /62) prefix from e.g. DHCPv6, we can split it
into subnets automatically to configure downstream interfaces.
This allows for automatic configuration of daisy-chained nodes or
nodes connected in a tree topology.
To enable the feature, a new pseudo-module `gnrc_ipv6_auto_subnets` is
provided.
Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.
With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this
```
└── /path/to/external/modules
├── mod_a
│ ├── Makefile
│ ├── Makefile.dep
│ ├── Makefile.include
│ ├── foo.c
│ └── include
│ └── external_module.h
└── mod_b
├── Makefile
└── bar.c
```
One now adds `/path/to/external/modules` to EXTERNAL_MODULES and only
with `USEMODULE += mod_a` the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
`EXTERNAL_MODULE_DIRS` from `~/.profile` or `~/.bashrc` once and never
needs to worry about them again.
By running make compile-commands a `compile_commands.json` in the RIOT base
directory. With the environment variable `COMPILE_COMMANDS` the path of
this file can be changed to a custom location.
The `compile_commands.json` will contain the exact compile command, but
as additional flag `-I/usr/$(TARGET)/include` is added to work around
`clangd` not being able to locate the newlib system headers. The
additional includes can be overwritten using the environment variable
`COMPILE_COMMANDS_EXTRA_INCLUDES`.
In analogy to the existing GPIO mappings, this provides (write-only)
SAUL entries for PWM'd LEDs in a single-LED (as SAUL_ACT_DIMMER) and an
RGB (as SAUL_ACT_RGB_LED) mode.
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
The previous favicon was a 35x40 png file. Some (if not all) browsers
stretch the icon to a square. This stretched the original favicon
without keeping the aspect ratio. This commit replaces the favicon with
a square 128x128 png image.
This extends the 'Advanced build system tricks' section with a make
script to select the board debugger and serial based on the USB serial
number as reported by the device. This solution is different from the
udev-rule solution as it doesn't require administrative permissions.
Change driver guide to expect drivers to return negative errno codes instead of
enums for error codes. Those have the following advantages:
- More efficient implementation of POSIX compatibility wrappers:
- In case of error, just an `errno = -retval; return -1` is needed
- Better interoperability
- A lot of code within RIOT and in external code is doing so already.
Applying this consistently allows passing error codes through, rather
than translating between errno codes and custom enum values
- Not reinventing the wheel
- Defining and documenting custom error codes for each driver is unneeded
effort
- The error classes that device driver have to report are largely the same.
There is no reason to have dozens of error codes for an input/output
error, each with a unique spelling a programmer needs to memorize
This changes the prefixes of the symbols generated from USEMODULE and
USEPKG variables. The changes are as follow:
KCONFIG_MODULE_ => KCONFIG_USEMODULE_
KCONFIG_PKG_ => KCONFIG_USEPKG_
MODULE_ => USEMODULE_
PKG_ => USEPKG_
- Add libstdcpp feature to indicate a platform is providing a libstdc++
implementation ready for use
- The existing cpp feature now only indicates a working C++ toolchain without
libstdc++. (E.g. still useful for the Arduino compatibility layer.)
- Added libstdcpp as required feature were needed
- Added some documentation on C++ on RIOT
move and resize results if they are not within the document-window
modify the search result display with some javascript patching
(in page grease(tamper)monkey approach)