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

7053 Commits

Author SHA1 Message Date
Marian Buschsieweke
a6b459eff3
drivers/periph/gpio_ll: change gpio_ll_switch_dir API
It turns out that the feature to switch the GPIO direction quickly
is not only a way to emulate open drain / open source mode for less
sophisticated GPIO peripherals that do not natively support it.
It also enables tri-state output (push-pull high, push-pull low,
high impedance), which is useful e.g. for driven charlieplexed LEDs
quickly.

This changes the API by introducing a `gpio_ll_prepare_switch_dir()`
function that prepares the value used to identify which pins should
be switched to input or to output mode. This is useful for GPIO
peripherals in which the GPIO mode register does not allocate one bit
per pin (so that only the direction is given there), such as the one
for STM32. This allows an STM32 implementation in which preparing the
bitmask needed to modify the direction of pins is not trivial.
2024-08-08 16:22:36 +02:00
Marian Buschsieweke
422042bd00
drivers/periph_gpio_ll_irq: make support for both edges optional
The assumption that every MCU has this feature turned out wrong. Hence,
add a feature to allow testing for support of edge triggered IRQs on
both flanks.
2024-08-02 13:41:36 +02:00
Marian Buschsieweke
84a4399135
tests/periph/gpio_ll: fix randomly failing test
A test intended to ensure that a configuration toggling the direction
of a GPIO two times restores the original configuration not only
compared the configuration at the two points in time, but also the
value of the input buffer. Since a floating input reads back random
values when not externally driven, the test was actually randomly
failing. Apparently I got lucky before consistently and this never
triggered until now.

This now clears the input value from both the configuration reported
before and after toggling the direction twice and should now indeed
succeed consistently.
2024-08-02 09:55:24 +02:00
Marian Buschsieweke
36e8526046
drivers/periph_gpio_ll: change API to access GPIO ports
The API was based on the assumption that GPIO ports are mapped in memory
sanely, so that a `GPIO_PORT(num)` macro would work allow for constant
folding when `num` is known and still be efficient when it is not.

Some MCUs, however, will need a look up tables to efficiently translate
GPIO port numbers to the port's base address. This will prevent the use
of such a `GPIO_PORT(num)` macro in constant initializers.

As a result, we rather provide `GPIO_PORT_0`, `GPIO_PORT_1`, etc. macros
for each GPIO port present (regardless of MCU naming scheme), as well as
`GPIO_PORT_A`, `GPIO_PORT_B`, etc. macros if (and only if) the MCU port
naming scheme uses letters rather than numbers.

These can be defined as macros to the peripheral base address even when
those are randomly mapped into the address space. In addition, a C
function `gpio_port()` replaces the role of the `GPIO_PORT()` and
`gpio_port_num()` the `GPIO_PORT_NUM()` macro. Those functions will
still be implemented as efficient as possible and will allow constant
folding where it was formerly possible. Hence, there is no downside for
MCUs with sane peripheral memory mapping, but it is highly beneficial
for the crazy ones.

There are also two benefits for the non-crazy MCUs:
1. We can now test for valid port numbers with `#ifdef GPIO_PORT_<NUM>`
    - This directly benefits the test in `tests/periph/gpio_ll`, which
      can now provide a valid GPIO port for each and every board
    - Writing to invalid memory mapped I/O addresses was treated as
      triggering undefined behavior by the compiler and used as a
      optimization opportunity
2. We can now detect at compile time if the naming scheme of the MCU
   uses letters or numbers, and produce more user friendly output.
    - This is directly applied in the test app
2024-08-02 09:55:24 +02:00
benpicco
9781bc0ad3
Merge pull request #20757 from xnumad/offl-lifetimes
gnrc/ipv6: Store all SLAAC prefixes
2024-07-29 14:06:22 +00:00
benpicco
41204c8b81
Merge pull request #20450 from benpicco/THREAD_CREATE_STACKTEST-delete
core/thread: always use THREAD_CREATE_STACKTEST when DEVELHELP is enabled
2024-07-29 11:52:06 +00:00
Benjamin Valentin
312a550f1a treewide: remove THREAD_CREATE_STACKTEST from thread creation 2024-07-29 11:45:58 +02:00
xnumad
e25066768b gnrc/ipv6: Store all SLAAC prefixes
Incl. off-link ones, since lifetimes for the autoconfigured addresses are managed by the prefix entry.
2024-07-28 09:53:55 +02:00
benpicco
dd06b3727c
Merge pull request #20786 from mguetschow/rust-wrappers-bump
rust: bump rust-riot-{sys,wrappers} version
2024-07-15 14:31:42 +00:00
Mikolai Gütschow
b07eddd66a
rust: bump rust-riot-{sys,wrappers} version
both only bump the version number with no functional changes
2024-07-15 14:14:41 +02:00
Wunderbaeumchen
9b502027ab sys/psa_crypto: added sha3 glue code 2024-07-13 04:35:21 +02:00
Mikolai Gütschow
751a430f89
tests/leds: adapt test to use led.h provided macros and functions 2024-07-11 14:49:37 +02:00
Mikolai Gütschow
86b0c5bc9a
tests/sys/progress_bar: remove debug print 2024-06-30 11:35:11 +02:00
Mikolai Gütschow
e79cb1b6a9
test/sys/progress_bar: fix python (exclusive) range 2024-06-26 11:12:36 +02:00
Mikolai Gütschow
e02c953e33
tests/sys/progress_bar: move configuration to app.config
Providing the configuration via Makefile variables if Kconfig is supported by the module
may involve some non-determinism in the environment variable that is finally exposed to the python tests.
This commit moves the configuration from Makefile to app.config.
2024-06-26 11:11:44 +02:00
mguetschow
a3059feeda
Merge pull request #20763 from mguetschow/nightly-debug-progressbar
test/sys/progress_bar: temporary printout to debug flaky test
2024-06-25 20:00:23 +00:00
Mikolai Gütschow
67ae5035c8
test/sys/progress_bar: temporary printout to debug flaky test 2024-06-25 21:57:40 +02:00
Mikolai Gütschow
cf4cc6ce63
tests/sys/psa_crypto_ecdsa: fix stacksize determination 2024-06-24 13:13:39 +02:00
benpicco
5096c2419e
Merge pull request #20750 from mguetschow/tests-pn532
tests/drivers/pn532: fix init error handling and increase verbosity
2024-06-14 10:49:22 +00:00
mguetschow
b879bbd491
Merge pull request #20745 from LP-HAW/fix-ocb-mode
sys/crypto: fix OCB mode
2024-06-14 08:39:00 +00:00
Mikolai Gütschow
81494bac9f
tests/drivers/pn532: fix init error handling and increase verbosity 2024-06-13 14:52:08 +02:00
Leandro Lanzieri
b092f954bb
tests/drivers: add max31855 test application 2024-06-12 15:09:16 +02:00
LP-HAW
b51d8e3478 sys/crypto: fix OCB mode 2024-06-11 18:26:14 +02:00
fabian18
772ccb9954
Merge pull request #20177 from fabian18/pr/test_periph_flashpage_raw
tests/periph/flashpage: make mtd_raw command write bytes instead of ASCII
2024-06-10 08:40:01 +00:00
fabian18
d6d9d5f3da
Merge pull request #20329 from fabian18/nib_rtr_fixes
nib: some fixes when a router or a prefix is deleted
2024-06-10 08:38:49 +00:00
benpicco
c20a9d1276
Merge pull request #20728 from LP-HAW/fix-w5500-link-state
drivers/w5500: fix W5500 link up/down events in interrupt mode
2024-06-05 17:01:31 +00:00
LP-HAW
134d84401d drivers/w5500: remove Kconfig 2024-06-05 16:30:59 +02:00
Benjamin Valentin
5b73294dad tests/core/thread_stack_alignment: also test for stack usage 2024-06-04 16:57:05 +02:00
mguetschow
f2c18b0b58
Merge pull request #20718 from LP-HAW/fix-sha2prng-init
sys/random: fix SHAxPRNG init_by_array
2024-06-03 09:27:00 +00:00
LP-HAW
9cf9638fdc sys/random: fix SHAxPRNG init_by_array 2024-05-31 23:29:09 +02:00
Marian Buschsieweke
835eaee630
*/Cargo.lock: bump rust-riot-wrappers 2024-05-31 18:26:48 +02:00
benpicco
251ea7f75a
Merge pull request #20687 from benpicco/nanocoap_fs
nanocoap_fs: add nanoCoAP as VFS backend (remote CoAP fs)
2024-05-29 15:00:24 +00:00
Benjamin Valentin
4ff877d239 tests/periph/hwrng: LIMIT -> NUM_BYTES 2024-05-29 14:20:49 +02:00
Benjamin Valentin
f42386587d tests/nanocoap_fs: add test for nanoCoAP fs 2024-05-29 11:32:22 +02:00
Teufelchen
10d8e4f399
Merge pull request #20702 from derMihai/mir/at_expose_api
drivers/at: expose some internal API
2024-05-28 15:37:14 +00:00
Mihai Renea
5a7d553b8e drivers/at: expose some internal API 2024-05-28 12:20:54 +02:00
Marian Buschsieweke
61679fb5f9
tests/pkg/openwsn*: drop whitelist
Now that OpenWSN depends on netif_openwsn, there is no need for
manually tracking which boards are supported
2024-05-27 22:57:21 +02:00
2f3c262fdd
Merge pull request #20683 from FlapKap/update-tfmicro
pkg/tflite-micro: Update tflite-micro to latest version. requires update of pkg/flatbuffers as well.
2024-05-27 06:27:55 +00:00
Marian Buschsieweke
4131abd2ae
Merge pull request #20685 from maribu/tests/drop-kconfig-workaround
tests: drop temporary KConfig workaround
2024-05-24 18:46:36 +00:00
Marian Buschsieweke
cbcf568263
tests: drop temporary KConfig workaround
The board white list was needed as temporary workaround during the
KConfig migration. As the migration was aborted, the workaround should
no longer be needed.

Partially fixes https://github.com/RIOT-OS/RIOT/issues/20680
2024-05-24 18:07:28 +02:00
kasper
2622478c90 pkg/tflite-micro: update Makefile.ci 2024-05-24 11:57:46 +02:00
Kasper Hjort Berthelsen
9c1e664e36 pkg/tflite-micro: Update tflite-micro to latest version 2024-05-24 11:57:46 +02:00
Dylan Laduranty
47b74fc021
Merge pull request #20667 from firas-hamdi/feat/samd5x_can_handle_errors
cpu/samd5x: handle CAN errors
2024-05-23 20:12:08 +00:00
benpicco
7291639b44
Merge pull request #20654 from maribu/tests/periph/uart/cleanup
tests/periph/uart: clean up and add power off cmd
2024-05-23 15:05:05 +00:00
mguetschow
c46d75d486
Merge pull request #20676 from LP-HAW/fix-uecc-key-format
pkg/micro-ecc/psa_uecc: convert between SEC 1 and micro-ecc public key formats
2024-05-22 15:41:43 +00:00
Lars
2ed082a807 tests/sys/psa_crypto_ecdsa: add test vector 2024-05-22 14:02:12 +02:00
Marian Buschsieweke
97a6543c10
tree-wide: Introduce netif feature and use it
This gets rid of a long list of boards with network interfaces and
instead let's boards (or MCUs with peripheral network interfaces)
provide the netif feature.

The apps that before used the long list are not depending on the
feature instead (in case of the default example, this is an
optional dependency).

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: mewen.berthelot <mewen.berthelot@orange.com>
2024-05-22 10:39:56 +02:00
mguetschow
3255b95937
Merge pull request #20598 from mguetschow/psa-hashes-sha512-truncated
sys/psa_crypto: SHA-{384,512/{224,256}}
2024-05-17 09:20:03 +00:00
Mikolai Gütschow
6be95ca482
tests/sys/psa_crypto_hashes: sync with content from examples/psa_crypto 2024-05-17 10:52:16 +02:00
Firas Hamdi
31003bf323 tests/drivers/candev: add debug output concerning errors 2024-05-16 15:00:28 +02:00