This block of code inconsistently made use of else-if statments. The
patch makes the use consistent. The change also makes the code a bit
simpler to read.
APB12 is never defined as a macro. It is an element in the bus_t enum.
Therefore, the test to check if it is defined will always fail.
APB12 is not a real bus. It is the second register of the APB1 bus. I am
not aware of any STM32 family where the ABP2 bus is implmented (ie
RCC_APB2ENR_SYSCFGEN is defined) and devices attached to said bus are
enabled via the APB1 second register. For this reason, the fix is to
simply remove the check.
It would seem that either we need to require the periph_pm module in shell
or make it optional... since we have many other optional modules here
and we still may want the RIOT_VERSION command, lets make it optional for now.
The egrep and fgrep commands have been deprecated since 2007. Beginning
with GNU Grep 3.8, calling these commands will now issue a warning to the
user that instead they should use grep -E and grep -F, respectively.
This cleans up the USCI based UART and SPI implementations and allows
multiple instances of either interface to be configured by the
boards. In addition, it allows sharing the USCI peripherals to provide
multiple serial interfaces with the same hardware (round-robin).
In `main.c:115` the call
`ztimer_sleep(ZTIMER_MSEC, _periodic_ctx.period.ms);` depends on the
module `ztimer_msec`. Apparently, this was previously pulled in
indirectly and the missing dep has gone unnoticed. This adds the
dep explicitly to fix compilation issues that now have surfaced in
the CI.
The nRF52840DK is an excellent wireless dev board due to the
integrated debugger, the nRF52840-Dongle is missing the debugger and
therefore a suboptimal choice.
The nRF52840-Dongle is cheap and has an excellent form factor that
allows to easily plug it into e.g. an OpenWRT system to quickly provide
a border router. The nRF52840DK is too large and too expensive for that
use case.
It appears that the rows have just been switched by mistake, this
switches them back to be correct.
This has the following advantages:
- faster and leaner when C11 atomics are not efficient (e.g. on LLVM
this is almost always the case, as LLVM will only use efficient
atomics if it doesn't has to bail out to library calls even for
exotic things)
- Even for GCC e.g. on the nucleo-f429zi this safes 72 B of .text
for examples/filesystem despite runtime checks added for
over- and underflow
- less pain in the ass for C++ and rust users, as both C++ and
c2rust are incompatible with C11 atomics
- adds test for overflow of the open file counter for more robust
operation
- adds `assumes()` so that underflows are detected in non-production
code