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

45027 Commits

Author SHA1 Message Date
mguetschow
50cf7b77cd
Merge pull request #20272 from Teufelchen1/chore/fmt_test_2
tests: Slightly increase coverage of fmt unittests
2024-01-23 12:06:48 +00:00
Teufelchen1
7c39b48847 tests: Slightly increase coverage of fmt unittests 2024-01-23 10:30:49 +01:00
Marian Buschsieweke
0a06b0c1d8
Merge pull request #20282 from chrysn-pull-requests/nrf52-i2c-nostop
cpu/nrf5x i2c: Set up correct interrupts after NOSTOP transmissions
2024-01-23 09:05:35 +00:00
Marian Buschsieweke
e5cb676dfe
Merge pull request #20286 from chrysn-pull-requests/nrf52dk-arduino
boards/nrf52dk: Minimal Arduino pinout support
2024-01-23 05:27:23 +00:00
chrysn
7452a61e64 fixup! boards/nrf52dk: Minimal Arduino pinout support 2024-01-23 01:12:06 +01:00
chrysn
b0a46c2eba boards/nrf52dk arduino: Declare SPI (side SPI) support 2024-01-23 00:39:03 +01:00
chrysn
ecfa2f7573 boards/nrf52dk: Minimal Arduino pinout support 2024-01-22 23:44:16 +01:00
chrysn
fce82dec6e cpu/nrf5x i2c: Forbid receive NOSTOP, document rationale 2024-01-22 23:29:24 +01:00
Marian Buschsieweke
63ec7fc7b5
Merge pull request #19835 from maribu/msp430
cpu/msp430: rework MSP430 x1xx periph drivers
2024-01-22 18:41:23 +00:00
Marian Buschsieweke
407deabc0f
boards/olimex-msp430-h1611: uart_stdio @ 9600 Bd 2024-01-22 16:59:23 +01:00
Marian Buschsieweke
675dcc381c
cpu/msp430: rework MSP430 x1xx periph drivers
- Move common code for USART (shared SPI / UART peripheral) to its
  own file and allow sharing the USART peripheral to provide both
  UART and SPI in round-robin fashion.
- Configure both UART and SPI bus via a `struct` in the board's
  `periph_conf.h`
    - this allows allocating the two UARTs as needed by the use case
    - since both USARTs signals have a fixed connection to a single
      GPIO, most configuration is moved to the CPU
    - the board now only needs to decide which bus is provided by
      which USART

Note: Sharing an USART used as UART requires cooperation from the app:
- If the UART is used in TX-only mode (no RX callback), the driver
  will release the USART while not sending
- If the UART is used to also receive, the application needs to power
  the UART down while not expecting something to send. An
  `spi_acquire()` will be blocked while the UART is powered up.
2024-01-22 16:59:23 +01:00
Marian Buschsieweke
3159578cbe
Merge pull request #20189 from maribu/cpu/sam0_common/periph_gpio_ll
cpu/sam0_common: implement periph_gpio_ll and periph_gpio_ll_irq
2024-01-22 15:39:26 +00:00
Marian Buschsieweke
1484d305bf
cpu/sam0_common: implement periph_gpio_ll_irq
Co-authored-by: benpicco <benpicco@googlemail.com>
2024-01-22 16:28:30 +01:00
Marian Buschsieweke
855756524f
cpu/sam0_common: Implement periph_gpio_ll
Co-authored-by: benpicco <benpicco@googlemail.com>
2024-01-22 16:28:16 +01:00
benpicco
9949237e5f
Merge pull request #20283 from maribu/drivers/periph/gpio_ll/doc
drivers/periph_gpio_ll: Improve documentation
2024-01-22 12:35:23 +00:00
benpicco
a384707d6d
Merge pull request #20125 from benpicco/examples/dtls-sock-cleanup
examples/dtls-sock: make use of helper functions
2024-01-22 10:51:45 +00:00
Marian Buschsieweke
00cb9668ae
drivers/periph_gpio_ll: Improve documentation
The documentation on the state `GPIO_DISCONNECT` was a bit vague. The
API doc said it should disconnect the GPIO from all peripherals, the
test also tested them for being electrically disconnected.

The documentation in both the test and the API is extended to point out
that a GPIO indeed SHOULD be in high impedance state, but that user
MUST NOT expect that this requested is honored by every implementation
and for every GPIO pin.

In the test it is also pointed out that failing the test for a GPIO
in the `GPIO_DISCONNECT` state being electrically disconnected is for
some pins expected, and that the test should be just run again with
different GPIOs. The test intentionally tests for a feature not provided
by every GPIO pin rather than warning on a failure: The effort to just
flash and run the test again with different GPIOs is relatively low, but
it does confirm correct behavior of the API.
2024-01-22 10:28:35 +01:00
chrysn
b91161dfce cpu/nrf5x i2c: Set up correct interrupts after NOSTOP transmissions 2024-01-22 02:03:46 +01:00
Marian Buschsieweke
891c627c48
tests/periph/gpio_ll: make test more robust
When using level triggered IRQs, a new IRQ flag may already have been
set while the IRQ callback is executed. Hence, we cannot just toggle
the output, but rather should drive it low/high for a level trigger on
high/low.

Also test `gpio_ll_query_conf()` for the disconnected state as well.
2024-01-21 18:27:35 +01:00
Marian Buschsieweke
3d1f651f7c
Merge pull request #20236 from maribu/periph/gpio_ll/smaller_type
drivers/periph/gpio_ll: shrink gpio_conf_t
2024-01-21 08:31:27 +00:00
Marian Buschsieweke
922276296e
drivers/periph/gpio_ll: pass gpio_conf_t by value
Now that `gpio_conf_t` is on all implemented platforms no larger than
a register, we can more efficiently pass it by value rather than via
pointer.
2024-01-21 09:19:08 +01:00
Marian Buschsieweke
718f277642
tests/periph/gpio_ll: optimize RAM usage on AVR 2024-01-21 08:38:48 +01:00
Marian Buschsieweke
84800fdb5d
tests/periph/gpio_ll: Use better default pin config
The default pin config is only a place holder anyway. But if it is
invalid at least on AVR most of the firmware is considered unreachable.
This updates the default GPIO config to something that should look
plausible to the compiler for all MCUs supporting GPIO LL, so that
ROM and RAM size in the CI start making sense.
2024-01-21 08:38:47 +01:00
Marian Buschsieweke
2ee949e676
tests/periph/gpio_ll: fix output on LOW_ROM_BOARDS
Printing the newline after the state was printed is not optional.

This also moves the call to `gpio_ll_print_conf()` and `puts("")` to
a static function to safe enough ROM so that this still can be flashed
on `nucleo-l011k4`.
2024-01-21 08:38:47 +01:00
Marian Buschsieweke
2a00ec13e5
drivers/periph/gpio_ll: shrink gpio_conf_t
This commit optimizes the `gpio_conf_t` type in the following
regards:

- The "base" `gpio_conf_t` is stripped from members that only some
  platforms support, e.g. drive strength, slew rate, and disabling of
  the Schmitt Trigger are no longer universally available but
  platform-specific extensions
- The `gpio_conf_t` is now crammed into a bit-field that is 8 bit or
  16 bit wide. This allows for storing lots of them e.g. in
  `driver_foo_params_t` or `uart_conf_t` etc.
- A `union` of the `struct` with bit-field members and a `bits` is used
  to allow accessing all bits in a simple C statement and to ensure
  alignment for efficient handling of the type

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2024-01-21 08:38:40 +01:00
Marian Buschsieweke
504c169346
Merge pull request #20270 from maribu/boards/gd32vf103c-start
boards/gd32vf103c-start: new board
2024-01-20 16:11:31 +00:00
Marian Buschsieweke
66abbd22d6
examples,tests: add gd32vr103c-start to Makefile.ci 2024-01-20 17:00:04 +01:00
Marian Buschsieweke
c6c5d9a1a7
boards/common/gd32v: reorder members in initialization
C has this feature that the order of struct members in the
initialization doesn't need to match the order in the declaration.
C++ has not yet caught up:

    boards/common/gd32v/include/cfg_usbdev_default.h:50:1: error: designator order for field 'dwc2_usb_otg_fshs_config_t::type' does not match declaration order in 'const dwc2_usb_otg_fshs_config_t'

So, just reorder the fields for now by hand.
2024-01-20 16:42:49 +01:00
Marian Buschsieweke
2cb575affe
Merge pull request #20278 from chrysn-pull-requests/rust-gcoap-dep-fix
examples/rust-gcoap: Fix transitive unbounded dependency
2024-01-20 14:17:22 +00:00
chrysn
4b13a37d60 examples/rust-gcoap: Fix transitive unbounded dependency
The older version of the external module used to have an `embedded-hal =
"*"` dependency that finally broke; the updated version is fixed.
2024-01-20 14:22:33 +01:00
benpicco
8dbe2ef7e4
Merge pull request #20273 from benpicco/coap_find_uri_query
nanocoap: implement coap_find_uri_query()
2024-01-20 11:27:15 +00:00
Marian Buschsieweke
7f27e6cc7f
boards/gd32vf103c-start: new board
This adds support for the GD32VF103C-START, the official "starter board"
for the GD32VF103C MCU by the MCU vendor.
2024-01-19 23:17:35 +01:00
Marian Buschsieweke
9fbb23b167
boards/common/gd32v: make common OpenOCD config opt-in
Let boards explicitly use the common OpenOCD config if it works for
them, rather than having boards with specific needs opt out.
2024-01-19 23:17:35 +01:00
Marian Buschsieweke
8b1c43afb0
cpu/gd32v: Allow configuration of SWJ_CFG
Expose the compile time configuration knob `CONFIG_AFIO_PCF0_SWJ_CFG`
to allow freeing some/all JTAG pins and use them as GPIOs.

As default, PB4 is remapped from NJTRST to be usable as regular GPIO.
This still allows using the JTAG interface for debugging/flashing,
but makes an GPIO exposed by some boards available.
2024-01-19 23:17:35 +01:00
benpicco
d9da212135
Merge pull request #20277 from benpicco/tests/RIOT_TERMINAL
tests: don't explicitly set RIOT_TERMINAL=native
2024-01-19 20:34:34 +00:00
Benjamin Valentin
f9d5328242 tests: don't explicitly set RIOT_TERMINAL=native 2024-01-19 18:11:09 +01:00
benpicco
912294912a
Merge pull request #20264 from benpicco/boards/native-term_fix
boards/native: only use pyterm wrapper with term target
2024-01-19 14:31:39 +00:00
Benjamin Valentin
e5618f705b boards/native: set and test for pyterm explicitly 2024-01-19 14:42:03 +01:00
Benjamin Valentin
d0093cf9cc Revert "riotctrl_ctrl: one more indirection to get native"
This reverts commit 5e0c9b4bff.
2024-01-19 12:59:14 +01:00
Benjamin Valentin
4c7fc012c5 tests/unittests: nanocoap: add test for coap_find_uri_query() 2024-01-19 10:53:03 +01:00
Benjamin Valentin
1c24462cd9 nanocoap: implement coap_find_uri_query() 2024-01-19 10:53:03 +01:00
Marian Buschsieweke
fccfd391fe
Merge pull request #20274 from benpicco/sys/shell/i2c_scan-fix
sys/shell: fix reserved addresses in i2c_scan
2024-01-18 21:45:22 +00:00
benpicco
c94058aa5f
Merge pull request #20263 from maribu/boards/e180-zg120b-tb/pin-mapping
boards/e180-zg120b-tb: Document correct pin mapping
2024-01-18 14:51:03 +00:00
Benjamin Valentin
0b925c2494 sys/shell: fix reserved addresses in i2c_scan
There are only 8 reserved addresses on the low end of the address space.
2024-01-18 15:08:14 +01:00
Marian Buschsieweke
c4fbcfad21
boards/e180-zg120b-tb: Document correct pin mapping
Revision 10199-V1.0 of the board has an incorrect pin labeling on the
silkscreen, presumably because the board was initially developed
for a different E180 module and the silkscreen was not updated when
populated with a different E180 module.

It is very likely that if newer revisions of the test board get
produced, they will use the same very systematical routing as revision
1.0 and only the silkscreen labeling will be fixed. Hence, documenting
the correct pin mapping will be useful even for newer revisions.
2024-01-18 13:52:36 +01:00
benpicco
d5f1fda70d
Merge pull request #20230 from benpicco/CONFIG_UART_DMA_THRESHOLD_BYTES
cpu/stm32: uart: don't do DMA for small transfers
2024-01-18 12:26:30 +00:00
benpicco
dcde978857
Merge pull request #20271 from fzi-haxel/native64-part2
pkg: 64-bit support preparations
2024-01-18 12:03:14 +00:00
5e02a0de2d
Merge pull request #20269 from kaspar030/split_native_test_output
ci: make native tests show up in "tests"
2024-01-18 11:45:57 +00:00
Marian Buschsieweke
a1d2089e04
Merge pull request #20253 from maribu/tests/periph/uart_locate_pins
tests/periph/uart_locate_pins: new test/utility app
2024-01-18 11:20:02 +00:00
Marian Buschsieweke
b17b2b0444
core/lib/init: skip boot message if stdio_null is used
With `stdio_null` no one is reading the boot message anyway, so let's
safe some ROM.
2024-01-18 10:42:14 +01:00