GCC 12 gives out of bounds warnings when the resulting address is out
of bounds of what GCC assumes to be the valid address space. It seems
that by default the address 0x0 is not considered valid (which would
be a NULL pointer and typically not mapped in a userspace behind an MMU
scenario), but in fact is valid on bare metal hardware. At least on
AVR and MSP430 this needs to be set. On many Cortex M MCUs 0x0 is also
a valid address (e.g. often the flash is mapped there), but seemingly
for them `--param=min-pagesize=0` is already the default. In any case,
it won't hurt to set it explicit for them as well.
An `INSERT AFTER` directive no longer can refer to a different linker
script included with `-T path/to/script.ld`. Instead, this adds wrapper
linker scripts that just `INCLUDE` the three individual linker scripts.
This way, the xfa.ld can safely refer back to sections defined in
the vendor linker script.
For some reason, this approach cause the exact issue it fixes for
binutils 2.40 with the binutils in the CI. We stick with the old
linker flags with binutils prior 2.40 to be compatible with both
conflicting behaviors.
The best approach would be to come up with something that works across
different versions of binutils; but no such solution materialized.
18788: pkg/lvgl: Change all references of LittlevGL to LVGL in doc.txt r=aabadie a=OkiStuff
Change all references of LittlevGL to LVGL in pkg/lvgl/doc.txt per request of LVGL team (https://github.com/lvgl/lvgl/pull/3761)
### Contribution description
Changing parts of the pkg/lvgl/doc.txt to replace "LittlevGL" to LVGL as per request of the LVGL team
### Issues/PRs references
https://github.com/lvgl/lvgl/pull/3761
Co-authored-by: Frankie A <40648091+OkiStuff@users.noreply.github.com>
19552: tests: move all periph applications to their own periphs/ folder r=gschorcht a=aabadie
Co-authored-by: Alexandre Abadie <alexandre.abadie@inria.fr>
19550: tests/drivers/l3gxxxx: fix used sensor version for iotlab boards r=aabadie a=gschorcht
### Contribution description
This PR fixes the `l3gxxxx` driver version used in `tests/drivers/l3gxxxx` for IoT-Lab boards. It hopefully fixes the compilation of nightly.
The problem occurred with PR #19523.
### Testing procedure
```
BOARD=iotlab-a8-m3 make -j8 -C tests/drivers/l3gxxxx info-modules | grep l3g4200d_ng
```
should succeed.
### Issues/PRs references
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
19522: tests/periph_rtt: Fix for tick conversion test r=benpicco a=chudov
### Contribution description
Type casting and `printf` formatting for the `RTT_MAX_VALUE` and `RTT_FREQUENCY` are fixed so 32-bit value is properly handled by 'avr-libc'.
The original tick conversion test assumes that `RTT_FREQUENCY` is power of 2 so forward and backward ticks to seconds conversion results in the original ticks value. To fix it the result of the forward-backward conversion is compared with `ticktest / RTT_FREQUENCY * RTT_FREQUENCY` that considers rounding errors.
Changes were tested on deRFmega256 and nrf52840dongle.
### Testing procedure
tests/periph_rtt on a board with ATmega256RFR2 shall:
* show correct RTT_MAX_VALUE
* conversion check shall report no error.
### Issues/PRs references
Fixes#15940
Co-authored-by: chudov <chudov@gmail.com>
19538: drivers/mtd_default: add external declarations for mtd* r=benpicco a=gschorcht
### Contribution description
The `mtd_default` module defines `MTD_NUMOF`, if not present, based on the `MTD_*` defines. These defines are set to the corresponding `mtd*` MTD device pointer variables in the board definitions. However, not all `mtd*` MTD device pointer variables are always made known by external variable declarations. An example are SD Card Interfaces that are defined via the `mtd_sdcard_default` module. As a result, it may be necessary for an application using `mtd_default` to declare an external MTD device pointer variable `mtd`. To be able to use SD card for testing MTD based application, `mtd_default` also declares up to six `mtd*` MTD device pointer variables.
### Testing procedure
Use any board without SD Card definition and compile `tests/pkg_litllefs`, `tests/pkg_litllefs2` or `tests/pkg_spiffs`, for example to use a temporary connected SD Card interface.
```
CFLAGS='-DMTD_0=mtd0 -DCONFIG_USE_HARDWARE_MTD' USEMODULE='sdcard_spi mtd_sdcard_default' BOARD=nucleo-f411re make -j8 -C tests/pkg_littlefs
```
Without this PR, compilation fails due to undeclared `mtd0` variable
```
tests/pkg_littlefs/bin/nucleo-f411re/riotbuild/riotbuild.h:2:15: error: 'mtd0' undeclared (first use in this function)
2 | #define MTD_0 mtd0
| ^~~~
```
Compilation works with this PR and the temporary connected SD Card interface can be used with this test applications.
### Issues/PRs references
19547: pkg/openthread: set event callback before netdev init r=benpicco a=bergzand
### Contribution description
When using openthread with the ieee802154_submac module, a hard fault is triggered otherwise because the submac's init function calls the event_handler callback.
### Testing procedure
Flash the `examples/openthread` application on the nrf52840dk board. Without this patch the board is stuck in a hard fault loop. With this patch the application starts successfully.
### Issues/PRs references
None
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Koen Zandberg <koen@bergzand.net>
19548: boards/telosb: minor clean ups r=maribu a=maribu
### Contribution description
This cleans up the documentation and the header files of the TelosB board. It is supposed to not changed the generated firmware (except for debug symbols).
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
When using openthread with the ieee802154_submac module, a hard fault is
triggered otherwise because the submac's init function calls the
event_handler callback.
19435: tests/drivers: move all driver tests into own folder r=aabadie a=Teufelchen1
Hi! 🦅
### Contribution description
This moves all `tests/driver_*/` to `tests/drivers/<driver name>/`.
Reason for change is purely esthetic 🐮
### Testing procedure
A passing CI should be enough - it should be (manually) checked that the new locations are still covered by it.
`./dist/tools/compile_test/compile_like_murdock.py -b native -a tests/drivers/*` can be helpful as well.
Co-authored-by: Teufelchen1 <bennet.blischke@haw-hamburg.de>
19477: sys /cpp11-compat: remove pseudo anonymous namespaces r=MrKevinWeiss a=kfessel
### Contribution description
remove pseudo anonymous namespaces in favor of defines that are used thoughout the rest of riot
### Testing procedure
cpp test do not fail
### Issues/PRs references
Co-authored-by: Karl Fessel <karl.fessel@ovgu.de>
19541: makefiles/tools/jlink.inc.mk: use ELF file for flashing r=maribu a=maribu
### Contribution description
There seems to be a consensus to go for a more ELF centric approach whenever possible. J-Link seems to work fine with ELF files, so let's avoid the extra step to create a bin file from the ELF file prior to flashing.
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
There seems to be a consensus to go for a more ELF centric approach
whenever possible. J-Link seems to work fine with ELF files, so let's
avoid the extra step to create a bin file from the ELF file prior to
flashing.
19537: boards/rpi-pico: specify needed args when using jlink flasher r=dylad a=dylad
### Contribution description
This PR adds the jlink device variable and use hexfile to flash application with a jlink probe.
### Testing procedure
Attach a `jlink` probe to SWD pins.
Try to flash any app with `jlink`
`PROGRAMMER=jlink make BOARD=rpi-pico -C examples/blinky flash`
### Issues/PRs references
None.
Co-authored-by: dylad <dylan.laduranty@mesotic.com>