1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

44000 Commits

Author SHA1 Message Date
Marian Buschsieweke
b8aec4369d
pkg/libschc: fix compilation with clang 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
2c75acf3b6
pkg/flatbuffers: disable building with LLVM toolchain 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
485a856691
pkg/flashdb: fix compilation with clang 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
927d2cd67f
pkg/fff: disable LLVM in CI, error message on old clang
pkg/fff compiles fine with clang 16.0.0 and higher, but the CI currently
uses version 14.x.y which is incompatible. This disables LLVM in the CI
builds and prints a friendly error message when `TOOLCHAIN=llvm` is
used and clang is older than 16.0.0.
2023-07-18 12:24:09 +02:00
Marian Buschsieweke
dc00024f98
pkg/arduino_adafruit_sensor: fix compilation with clang 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
2428bbef81
pkg/arduino_sdi_12: fix compilation with clang 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
daa138bc88
pkg/arduino_sdi_12: upgrade package 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
624e9c664a
tests/sys/malloc: fix test with LLVM 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
38eb52cbbb
tests/sys/cpp11_thread: fix compilation with clang++ 2023-07-18 12:24:09 +02:00
Marian Buschsieweke
a1acae92fa
tests/net/gnrc_sixlowpan_frag_sfr: work around bug in clang 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
708e5eadb4
tests/bench/runtime_coreapis: disable test with LLVM
This triggers a known bug much more often than with gnu toolchains to
the point that merging this PR without disabling the test would
render the CI useless.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
07a694830e
tests/bench/msg_pingpong: fix compilation with clang 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
fd3ae2993f
sys/ztimer: work around bug in old LLVM
The sum of an `uint16_t` variable and a literal `1` should still be of
type `uin16_t`. And at least with LLVM 16 this seems to be the case,
but not with the LLVM version in our build container :/

So cast what should have been `uint16_t` anyway explicitly to `uint16_t`
to make that buggy version of LLVM happy.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
dd7bec50b5
sys/usb/usbus_hid: fix compilation with clang
Well, it is actually a cosmetic issue. But I agree with clang that it
is ugly enough to refuse compiling over it :D
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
a4e4c1f2a7
sys/suit: fix compilation with clang 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
ec699db9f4
sys/suit/storage: fix compilation with LLVM 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
2ae3c7c84f
sys/stdio_nimble: fix -Wformat-nonliteral warning 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
72184a3afd
sys/shell_lock: fix compilation with llvm
Make writes to `the_same` "observable behavior" by declaring it
`volatile` to prevent compiler optimization rather than GCC specific
attributes.

Likely, either doesn't a super good job at resulting in constant
time code. But with the plain text password stored in flash, this
likely also isn't what should keep one up at night when actually using
this module.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
4709bbb952
sys/net/gnrc_lorawan: make clang happy
`clang` doesn't propagate the packed attribute to members. I think
this incorrect, but explicitly adding it won't hurt and makes clang
happy. So let's have it.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
76347a83d7
sys/cpp11-compat: fix compilation with clang++ 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
3336a8d173
sys/cpp_new_delete: fix compilation with clang
Fix `-Wimplicit-exception-spec-mismatch` warning.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
0337d08bcc
drivers/vl6180x: fix compilation with clang
Some of the `static inline` functions are only used in some
configurations, depending on the preprocessor. Explicitly disable the
warning to allow compilation with clang.
2023-07-18 12:24:08 +02:00
Marian Buschsieweke
510c6fd84e
drivers/dht: fix compilation with LLVM 2023-07-18 12:24:08 +02:00
Marian Buschsieweke
f4c5cf173d
cpu/stm32: fix compilation with clang 2023-07-18 12:24:07 +02:00
Marian Buschsieweke
a4bf63e483
cpu/sam0_common: fix vendor header files
Drop type qualifiers in front of anonymous bit fields (padding for
reserved bits) for compatibility with `clang++`. A four line bash
script was added to ease fixing new vendor header files.
2023-07-18 12:24:07 +02:00
Marian Buschsieweke
b1b0690bc8
cpu/nrf5x_common/periph_gpio_ll: fix compilation with clang 2023-07-18 12:24:07 +02:00
Marian Buschsieweke
c800b98244
makefiles/vars.inc.mk: export LLVM specific flags and include dirs 2023-07-18 12:24:07 +02:00
Marian Buschsieweke
59f1b4346c
makefiles/toolchain/llvm.inc.mk: disable annoying C++ warning
Designated initializers make the code much more readable and are part
of the C standard since C99. C++ with C++20 finally caught up.
Until we switch to that C++ version, let's disable the annoying
warning rather than reducing the code quality for the sake of
strict C++ compatibility of our headers.
2023-07-18 12:24:07 +02:00
Marian Buschsieweke
33442fdb71
makefiles/toolchain/llvm.inc.mk: fix include headers
With GCC, the C++ compiler knows all builtin C include paths *and*
all builtin C++ include paths, but the C compiler only knows the
C include paths. Hence, let's use the C++ compiler to collect
the include paths.
2023-07-18 12:24:07 +02:00
Marian Buschsieweke
e8bb46ece6
makefiles/toolchain/llvm.inc.mk: provide LLVM_VERSION
We already have GCC_VERSION, so let's also have LLVM_VERSION.
2023-07-18 12:24:04 +02:00
bors[bot]
7dd7d1e3a7
Merge #19806 #19814
19806: ztimer/periodic: remove timer on init if already running r=kaspar030 a=benpicco



19814: boards/sipeed-longan-nano: revert default to variant with TFT r=benpicco a=gschorcht

### Contribution description

This PR reverts commit 69fb00bdfa to fix CI compilation.

### Testing procedure

Green CI with full build.

### Issues/PRs references


Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-07-12 20:03:13 +00:00
bors[bot]
ae2118cbf6
Merge #19816
19816: drivers/lcd: code deduplication for st7735 and ili9341 r=aabadie a=gschorcht

### Contribution description

In preparation for the parallel interface support the following changes were made:

1. The code for basic communication (acquire/release SPI device, SPI transfers), which were always duplicated by copy & paste in each display driver again and again, has been moved to the LCD driver as low-level functions that are now used by the display drivers. These low level function allow 
- code deduplication and
- to define a more abstract communication interface that can then be extended later by parallel communication interface
2. Identical GPIO initializations has also been moved from display drivers to the LCD driver.
3. Using a default implementation of `lcd_set_area` function allows further code deduplication.

Finally, the `ili9341` and `st7735` drivers only implement the inialization sequence for the LCD driver IC.

### Testing procedure

`tests/drivers/ili9341` should still work for a board with an ILI9341. Tested with `esp32-wrover-kit`.
`tests/drivers/st7735` should still work for a board with a ST77xx. Tested with `esp32s3-usb-otg`.

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-07-12 14:08:56 +00:00
Gunar Schorcht
ce653b74cd boards/sipeed-longan-nano: default to TFT version if st7735 is used 2023-07-12 15:56:20 +02:00
Gunar Schorcht
3f389d0b15 boards/sipeed-longan-nano: fix Kconfig for disp_dev driver 2023-07-12 15:53:36 +02:00
Gunar Schorcht
5cb51b17a3 driver/lcd: use a default implementation of lcd_set_area used
Using a default implementation of `lcd_set_area` function allows further code deduplication.
2023-07-12 15:31:29 +02:00
Gunar Schorcht
878af4f9a1 drivers/st7735: move basic communication functions to drivers/lcd 2023-07-12 15:31:29 +02:00
Gunar Schorcht
c51496fe2e drivers/ili9341: move basic communication functions to drivers/lcd 2023-07-12 15:31:29 +02:00
Gunar Schorcht
3f8ba798cb drivers/lcd: move basic communication functions to drivers/lcd
In preparation for the parallel interface support the following changes were made:

1. The code for basic communication (acquire/release SPI device, SPI transfers), which were always implemented identically in the individual display drivers again and again, have been moved to the LCD driver as low-level functions and are now used by the display drivers. These low level function allow 
- code deduplication on one hand and 
- to define a more abstract communication interface on the other hand that can then be extended by parallel communication
2. Identical GPIO initialization has  also been moved from display drivers to the LCD driver.
2023-07-12 15:31:29 +02:00
Gunar Schorcht
b30401a1c2 drivers/st7735: fix Kconfig logic for ST7789
MODULE_ST7789 is enabled if MODULE_ST7735 is enabled and the board has selected HAVE_ST7789.
2023-07-12 15:31:29 +02:00
Benjamin Valentin
eadb3741e3 ztimer/periodic: remove timer on init if already running 2023-07-12 15:03:48 +02:00
bors[bot]
82f4154c71
Merge #19754
19754: boards/atmega8: new board r=benpicco a=hugueslarrive

### Contribution description
Splitted from:
- #19740

### Testing procedure
Tested on atmega8 with:
- #19755

### Issues/PRs references

Dependencies:
- #19753
- #19752
- #19751



Co-authored-by: Hugues Larrive <hlarrive@pm.me>
2023-07-11 21:41:07 +00:00
Hugues Larrive
3c465836f2 examples and tests: add atmega8 to relevent Makefile.ci
using dist/tools/insufficient_memory/add_insufficient_memory_board.sh
2023-07-11 21:22:02 +02:00
Hugues Larrive
e8327a4a9a boards/atmega8: new board 2023-07-11 21:22:02 +02:00
Hugues Larrive
064c799e57 cpu/atmega_common: some additional periph drivers fixed for atmega8 cpu
- periph/eeprom.c
- periph/wdt.c
- periph/gpio_ll_irq.c

removed unsupported cpuid and dpgpin feature for atmega8 cpu familly

pkg/qdsa: bump the commit hash bump the commit hash after RIOT-OS/qDSA#4
was merged
2023-07-11 21:22:02 +02:00
bors[bot]
9a46bcdbe7
Merge #19685
19685: pkg/openthread: remove deprecated functions r=benpicco a=maribu



Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2023-07-11 14:59:53 +00:00
bors[bot]
1b8ad7cffc
Merge #19777
19777: cpu/avr8_common: Prepare for rework ISR r=benpicco a=nandojve

### Contribution description

This prepares for rework how ISR is handled for AVR-8 platform. It is not expected changes on the behavior but tests on other boards were welcome to avoid regressions.

#### Improvements
 * Split UART state from ISR states. Now it is necessary two variables and GPIORx registers are automatically selected when available.
 * UART states now supports up to 8 UARTs.
 * Added AVR8_ISR macro do clean-up and hide internals related to ISR processing. This allows changes on ISR without any other changes on drivers.

### Testing procedure

Tests were conducted using atmega328p-xplained-mini and atxmega-a1u-xpro and the zigduino board was only built. The example thread_duel was used to test regressions.

Co-authored-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-07-11 10:39:11 +00:00
Marian Buschsieweke
2fe9d9f755 Revert "boards/sipeed-longan-nano: default to variant with TFT"
This reverts commit 69fb00bdfa.
2023-07-10 14:56:01 +02:00
bors[bot]
37c6233bcb
Merge #19764 #19781
19764: drivers/shield_w5100: add module for the W5100 Ethernet Shield r=benpicco a=maribu

### Contribution description

This module provides no more than the correct configuration parameters for the `w5100` driver using the Arduino I/O mapping features. But by doing so, it will work out of the box with every mechanically and electrically compatible board for which the Arduino I/O mapping features are implemented.


19781: cpu/nrf{53,9160}: add pwm support r=benpicco a=dylad

### Contribution description

This PR moves the nRF52 PWM driver to `cpu/nrf5x_common` to allow nRF9160 and nRF53 to use this driver.
IP is identical on these families.

I didn't test on nRF9160DK and I didn't test if there is any regression on nRF52-based board as I don't have any so tests are welcome !
However it works fine on nRF53-based board.


### Testing procedure

Flash the `tests/periph/pwm` test application on `nrf5340dk` or `nrf9160dk`.
You can then use the `osci` command to make the onboard LEDs "breath".
You can also attach an oscilloscope and/or logic analyzer to watch the signal.


### Issues/PRs references
~~Based on #19769~~

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Co-authored-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
Co-authored-by: dylad <dylan.laduranty@mesotic.com>
2023-07-10 10:51:20 +00:00
bors[bot]
123cce95d8
Merge #19813
19813: buildsystem: fix kconfig mismatches r=gschorcht a=maribu

### Contribution description

This adds three commits each addressing a deviation between dependency resolutions done with and without Kconfig. Hopefully, these in combination should fix the nightly builds.

### Testing procedure

For each `$failing_board` and `$failing_app` pair in the latest nightly build, do:

```
make BOARD=$failing_board -C $failing_app TEST_KCONFIG=0 info-modules > ~/without-kconfig
make BOARD=$failing_board -C $failing_app TEST_KCONFIG=1 info-modules > ~/with-kconfig
diff -rupN ~/without-kconfig ~/with-kconfig
```

should yield an empty diff other than the `=== [ATTENTION] Testing Kconfig dependency modelling ===`.

### Issues/PRs references

None

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
2023-07-09 13:30:47 +00:00
Marian Buschsieweke
ca07f77f48
drivers/st7735: fix inconsistency in dependency modeling
In KConfig `MODULE_ST7789` now is hidden module that automatically
gets selected when `HAVE_ST7789` is selected in `MODULE_ST7735` is used.

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-07-09 14:15:25 +02:00