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

45142 Commits

Author SHA1 Message Date
Miquel-HAW
71169638ca drivers/lsm6dsxx: Implement common code 2024-01-24 09:57:04 +01:00
benpicco
ded97c36f0
Merge pull request #20285 from benpicco/gnrc_loopback-linklocal
gnrc/ipv6: only send link-local loopback if it's on the same interface
2024-01-23 21:48:54 +00:00
Benjamin Valentin
c71b5ae617 nanocoap: implement coap_reply_simple() using coap_build_reply_header() 2024-01-23 19:16:59 +01:00
Benjamin Valentin
158c1b8fa8 nanocoap: add coap_build_reply_header() 2024-01-23 19:16:59 +01:00
Benjamin Valentin
a6ef93fc71 nanocoap: make use of COAP_PAYLOAD_MARKER 2024-01-23 19:16:59 +01:00
7bec6cb0b1
Merge pull request #20288 from kaspar030/fix_check_commits
ci: ensure "xxx succeeded" properly fail
2024-01-23 17:04:05 +00:00
Marian Buschsieweke
2bf461117b
Merge pull request #20291 from maribu/cpu/sam0_common/fix-doc
cpu/sam0_common/periph_gpio_ll: fix doc
2024-01-23 15:10:08 +00:00
Marian Buschsieweke
807fcd7614
cpu/sam0_common/periph_gpio_ll: fix doc
Fix some copy-paste bugs in the doc.
2024-01-23 15:51:36 +01:00
5a16b63f86 ci: ensure "tools-build succeeded" always runs 2024-01-23 14:01:02 +01:00
Benjamin Valentin
fdc722f842 net/coap: define COAP_PAYLOAD_MARKER 2024-01-23 13:56:10 +01:00
f8bbeca2c9 ci: ensure "check-commits succeeded" actually ran 2024-01-23 13:49:31 +01:00
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
Benjamin Valentin
616a5d69f6 gnrc/ipv6: only send link-local loopback if it's on the same interface 2024-01-22 20:03:41 +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