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

42839 Commits

Author SHA1 Message Date
Fabian Hüßler
26363e9da4 cpu/stm32/periph/i2c_1: export PERIPH_I2C_MAX_BYTES_PER_FRAME 2023-02-14 17:39:42 +01:00
Benjamin Valentin
85ce068c45 pkg/tinyusb: bump to 0.15 2023-02-14 14:30:49 +01:00
bors[bot]
a311b3f951
Merge #19274
19274: CI: .murdock: use build checkout for ccache tmp r=bergzand a=kaspar030



Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2023-02-14 12:10:50 +00:00
551aa2e56e CI: .murdock: use build checkout for ccache tmp 2023-02-14 10:32:13 +01:00
bors[bot]
f78c3751b9
Merge #19272
19272: gcoap: Do not send responses from multicast addresses r=benpicco a=chrysn

### Contribution description

Since https://github.com/RIOT-OS/RIOT/pull/18026, CoAP requests to multicast addresses (eg. `ff02::1`) came back from that exact address, which Linux rightfully just drops.

The fix uses the existing multicast check from https://github.com/RIOT-OS/RIOT/pull/17978 (thanks `@benpicco` for making me write this as dedicated function, I just had to generalize it removing one struct layer), and foregoes setting the source address when responding to multicasts.

### Testing procedure

* Run the gcoap example
* Send a CoAP request to a multicast address RIOT listens to, eg. `./aiocoap-client coap://'[ff02::1%tapbr0]'/.well-known/core --non`

Before, this got no response (while you see it arrive on wireshark). After, you get a correct response with two lines of note:

```
WARNING:coap:Sending request to multicast via unicast request method
Response arrived from different address; base URI is coap://[fe80::3c63:beff:fe85:ca96%tapbr0]/.well-known/core
```

(The former is aiocoap telling us that we're not using the nonexistent multicast API so it's really more of an anycast, the latter is useful factual information).

Co-authored-by: chrysn <chrysn@fsfe.org>
2023-02-14 00:28:46 +00:00
bors[bot]
1c55118bd8
Merge #18257
18257: drivers/wdt: add periph_wdt_auto_start for early watchdog r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-13 21:09:07 +00:00
chrysn
ac3a9cdf83 gcoap: Do not send responses from multicast addresses 2023-02-13 21:46:12 +01:00
chrysn
54037f5c2d gcoap: Alter indirection level of _memo_ep_is_multicast 2023-02-13 20:32:29 +01:00
Benjamin Valentin
80fe4e5f26 sys/auto_init: add auto_init_wdt_{event, thread} modules 2023-02-13 15:06:24 +01:00
bors[bot]
ea300c3d15
Merge #18758
18758: sys/event: add event sources r=kaspar030 a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-10 16:03:41 +00:00
bors[bot]
d145a876ae
Merge #19259
19259: boards/stm32f4discovery: default to stdio via CDC ACM r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@bht-berlin.de>
2023-02-10 10:42:56 +00:00
Benjamin Valentin
1cd2c16a75 tests/xtimer_now{32, 64}: blacklist stm32f4discovery 2023-02-10 10:12:18 +01:00
Benjamin Valentin
3e1f5edb8f boards/stm32f4discovery: default to stdio via CDC ACM 2023-02-10 10:12:18 +01:00
bors[bot]
0607806caa
Merge #19263
19263: cpu/stm32/periph/timer: don't stop counter r=maribu a=Enoch247

### Contribution description

From the git comment msg:

If a timer's channel was set with a really small realtive duration from now, such that it would be missed (underflowed), the driver would stop the timer, potentially causing missed ticks. It was stopped to ensure that the channel's output-compare register could be set to the current counter value, before re-enabling the timer's counter. This is a condition that will ensure that the underflow won't happen again and the interrupt will fire, at the cost of losing some ticks for very high speed clocks.

This patch replaces the logic that stopped the timer. Instead it uses a register provided by the timer hardware to trigger timer interrupts via software.


### Testing procedure

1. do
    ``` bash
    $ cd tests/periph_timer_short_relative_set
    $ make BOARD=nucleo-f303ze flash term
    ```
1. follow prompts to run test
1. observe all tests pass
1. apply patch below to break test
1. rerun test
1. observe test fails, so new method is doing its job


##### patch to intentionally break test

```` diff
diff --git a/cpu/stm32/periph/timer.c b/cpu/stm32/periph/timer.c
index 64a6f3a656..7078c46ab4 100644
--- a/cpu/stm32/periph/timer.c
+++ b/cpu/stm32/periph/timer.c
`@@` -177,7 +177,7 `@@` int timer_set(tim_t tim, int channel, unsigned int timeout)
     if (value > timeout) {
         /* time till timeout is larger than requested --> timer already expired
          * ==> let's make sure we have an IRQ pending :) */
-        dev(tim)->EGR |= (TIM_EGR_CC1G << channel);
+        //dev(tim)->EGR |= (TIM_EGR_CC1G << channel);
     }
````


### Issues/PRs references

- none known


Co-authored-by: Joshua DeWeese <jdeweese@primecontrols.com>
2023-02-09 08:06:31 +00:00
bors[bot]
537f844b93
Merge #19261
19261: tests/{sys_fido2_ctap/usbus_board_reset}: fix stdio_usb_serial_jtag dependency r=gschorcht a=gschorcht

### Contribution description

This PR fixes the `stdio_usb_serial_jtag` dependency problem for `tests/sys_fido2_ctap` and `usbus_board_reset`.

- There are boards that select the STDIO backend used depending on whether `usbus` is enabled. Usually the `fido2_ctap_transport_hid` module pulls in `usbus_hid` and thus `usbus`, but since this dependency resolution is done after reading the `Makefile.dep` of the board, it may happen that the wrong STDIO backend is selected. Therefore `usbus` is selected directly in the `Makefile` of `tests/sys_fido2_ctap` .
- To improve the selection of the `stdio_usb_serial_jtag` backend in `esp32s3-pros3`, it checks for any `usbus_%` module not only `usbus`.

### Testing procedure

GreenCI

### Issues/PRs references



Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-08 20:47:10 +00:00
Gunar Schorcht
0c9788fa55 boards/esp32s3-pros3: fix STDIO backend selection 2023-02-08 21:40:07 +01:00
Gunar Schorcht
c9711b4d5b boards/esp32s3-pros3: add usbus_% dependency in STDIO selection 2023-02-08 21:40:07 +01:00
Joshua DeWeese
289814edcf cpu/stm32/periph/timer: don't stop counter
If a timer's channel was set with a really small realtive duration from
now, such that it would be missed (underflowed), the driver would stop
the timer, potentially causing missed ticks. It was stopped to ensure
that the channel's output-compare register could be set to the current
counter value, before re-enabling the timer's counter. This is a
condition that will ensure that the underflow won't happen again and the
interrupt will fire, at the cost of losing some ticks for very high
speed clocks.

This patch replaces the logic that stopped the timer. Instead it uses a
register provided by the timer hardware to trigger timer interrupts via
software.
2023-02-08 14:08:56 -05:00
Benjamin Valentin
5134b5c7d5 nanocoap_sock: make use of sock_dtls_establish_session() 2023-02-08 15:57:28 +01:00
Benjamin Valentin
46764727ab sys/net/sock_util: add sock_dtls_establish_session() 2023-02-08 15:57:22 +01:00
bors[bot]
cb089cefda
Merge #19262
19262: boards/common/blxxxpill: Fix mixup in pinout r=maribu a=maribu

### Contribution description

TX0 and RX0 in the pinout got mixed up. This swaps them back.

### Testing procedure

Check f22ce155bb/boards/common/blxxxpill/include/periph_conf.h (L191-L203) and confirm that the RX and TX assignment to pins matches the labeling to pins in the SVG and CSV file.

### Issues/PRs references

None

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2023-02-08 14:45:28 +00:00
Marian Buschsieweke
660990afd3
boards/common/blxxxpill: Fix mixup in pinout
TX0 and RX0 in the pinout got mixed up. This swaps them back.
2023-02-08 14:54:45 +01:00
Gunar Schorcht
8512db60a6 tests/sys_fido2_ctap: enable usbus in Makefile
There are boards that select the STDIO backend used depending on whether `usbus` is enabled. Usually the `fido2_ctap_transport_hid` module pulls in `usbus_hid` and thus `usbus`, but since this dependency resolution is done after reading the `Makefile.dep` of the board, it may happen that the wrong STDIO backend is selected. Therefore `usbus` is selected directly in the `Makefile`.
2023-02-08 11:56:18 +01:00
bors[bot]
f22ce155bb
Merge #19252
19252: mtd: add fast path to mtd_write_page() r=benpicco a=benpicco




Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-08 00:52:25 +00:00
bors[bot]
5bdf2d38dc
Merge #19250 #19260
19250: sys/fmt: use `fflush(); stdio_write()` instead of `fwrite()` r=benpicco a=kaspar030



19260: sys/stdio: mark stdio_tinyusb_cdc_acm as buffered r=benpicco a=benpicco





Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
Co-authored-by: Benjamin Valentin <benjamin.valentin@bht-berlin.de>
2023-02-07 22:28:43 +00:00
Benjamin Valentin
c27010c630 sys/stdio: mark stdio_tinyusb_cdc_acm as buffered
stdio_tinyusb_cdc_acm benefits from stdio buffering (not transferring
individual bytes) just like stdio_cdc_acm.
2023-02-07 22:47:35 +01:00
c77b104c2d sys/test_utils/print_stack_usage: reduce MIN_SIZE for fmt 2023-02-07 22:42:43 +01:00
f31d5a93b5 sys/fmt: print(): use fflush(); stdio_write() vs. fwrite() 2023-02-07 22:42:43 +01:00
bors[bot]
f341ad6c9c
Merge #17045 #19243
17045: sys/coding: add XOR based coding module r=benpicco a=benpicco



19243: cpu/gd32v: add periph_gpio_ll and periph_gpio_ll_irq support r=benpicco a=gschorcht

### Contribution description

This PR provides the `periph_gpio_ll` and `periph_gpio_ll_irq` support for GD32VF103. Level triggered interrupts are emulated.

`periph_gpio_ll_irq` could be split off from this PR as a separate PR if necessary.

### Testing procedure

Use any GD32V board and connect PA0 -> PB0 and PA1 -> PB1 where PA is the output port and PB the input port. With these connections `tests/periph_gpio_ll` should work.
```
BOARD=sipeed-longan-nano make -j8 -C tests/periph_gpio_ll flash term
```

If necessary, change the input and output pins by setting the environment variables and connect the corresponding pins, for example for `seeedstudio-gd32` PA1 -> PB8 and PA8 -> PB9:
```
PIN_OUT_0=1 PIN_OUT_1=8  PIN_IN_0=8 PIN_IN_1=9 BOARD=seedstudio-gd32 make -j8 -C tests/periph_gpio_ll flash term
```

### Issues/PRs references


Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-07 17:39:20 +00:00
bors[bot]
dd2d336962
Merge #19240 #19248 #19255
19240: tools/doccheck: add simple exclude to doccheck r=benpicco a=kfessel

while doccheck runs for #19228 and #19220, i saw some spikes in memory consumption, turned out that was `grep -Evf dist/tools/doccheck/exclude_patterns` using about 2GB RAM. This PR changes that.

### Contribution description

add `exclude_simple`  to `doccheck` drived from `exclude patterns`
`sort`ed and `uniq`ued the simple excludes
removes no longer needed patterns from `exclude patterns`

simple excludes are string rules (no patterns just strings) 
how to apply these:
in this PR: 
*remove the path and line number from the rule
* that made some of them doubles of each other
* sorted and uniqued them. 
* this set of excludes is no longer path specific (an exception covers all paths but may of them still contain a file name)

another possible solution would be to have the excludes line number specific.

### Testing procedure

run `dist/tools/doccheck/check.sh`

compare memory consumption of 
master: `grep -Evf dist/tools/doccheck/exclude_patterns`
to 
this PR: `grep -Fvf dist/tools/doccheck/exclude_simple`

### Issues/PRs references



19248: cpu/gd32v: add periph_dac support r=benpicco a=gschorcht

### Contribution description

This PR provides the `periph_dac` support for GD32VF103.

### Testing procedure

`tests/periph_dac` should work on `sipeed-longan-nano` port on PA4 and PA5.

### Issues/PRs references

19255: boards/esp*: complete SD Card MTD config r=benpicco a=gschorcht

### Contribution description

This PR provides the remaining changes necessary to use the generic MTD SD Card configuration as described in PR #19216. 

This includes defining the MTD offset for SD cards, since the default `MTD_0` device always uses the internal flash device, and the completion of the configuration for the ESP32 boards with a SD card interface.

### Testing procedure

`tests/vfs_default` should work now with SD Cards:
```
main(): This is RIOT! (Version: 2023.04-devel-323-gfcc07)
mount points:
	/nvm0
	/sd0

data dir: /sd0
> vfs df 
Mountpoint              Total         Used    Available     Use%
/nvm0                3052 KiB        8 KiB     3044 KiB       0%
/sd0                 7580 MiB 3632148992 B   21089792 B      99%
```

### Issues/PRs references


Co-authored-by: Karl Fessel <karl.fessel@ovgu.de>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-07 14:55:44 +00:00
Gunar Schorcht
712b55e96b cpu/gd32v: fix a #endif comment in periph_cpu.h 2023-02-07 14:54:53 +01:00
Benjamin Valentin
24cb2dada8 tests/coding: add tests for XOR codding 2023-02-07 14:09:39 +01:00
bors[bot]
4c011c8390
Merge #19257
19257: pkg/lvgl: bump to 8.3.5 r=maribu a=aabadie



Co-authored-by: Alexandre Abadie <alexandre.abadie@inria.fr>
2023-02-07 12:54:17 +00:00
52bb4d1a77
pkg/lvgl: bump to 8.3.5 2023-02-07 12:43:03 +01:00
Gunar Schorcht
0561e99b0a cpu/gd32v: add perip_gpio_ll_irq support 2023-02-07 12:19:49 +01:00
bors[bot]
af393878d1
Merge #19251 #19254
19251: tests/driver_dac_dds: fix output of sine and saw functions r=benpicco a=benpicco



19254: cpu/gd32v: add periph_rtc_mem support r=benpicco a=gschorcht

### Contribution description

This PR provides the `periph_rtc_mem` support for GD32VF103.

A modified version of this driver could also be used for STM32F1.

### Testing procedure

`tests/periph_rtt` should work on any GD32V board, for example:
```
BOARD=sipeed-longan-nano make -C tests/periph_rtt flash
```
```
Help: Press s to start test, r to print it is ready
START
main(): This is RIOT! (Version: 2023.04-devel-319-gebc86-cpu/gd32v/periph_rtc_mem)

RIOT RTT low-level driver test
RTT configuration:
RTT_MAX_VALUE: 0xffffffff
RTT_FREQUENCY: 32768

Testing the tick conversion
Trying to convert 1 to seconds and back
Trying to convert 256 to seconds and back
Trying to convert 65536 to seconds and back
Trying to convert 16777216 to seconds and back
Trying to convert 2147483648 to seconds and back
All ok

Initializing the RTT driver
RTC mem OK
This test will now display 'Hello' every 5 seconds

RTT now: 1
Setting initial alarm to now + 5 s (163841)
rtt_get_alarm() PASSED
RTC mem OK
```

### Issues/PRs references

Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-07 07:33:48 +00:00
Gunar Schorcht
066b9216ad dist/toos/doccheck: add DAC configu to generic_exclude_pattern 2023-02-07 02:42:19 +01:00
Gunar Schorcht
b85d6b2884 boards/seeedstudio: document periph_dac support 2023-02-07 02:42:19 +01:00
Gunar Schorcht
eb9b636fbc boards/sipeed-longan-nano: add periph_dac support 2023-02-07 02:42:19 +01:00
Gunar Schorcht
64663ee743 cpu/gd32v: add periph_dac support 2023-02-07 02:41:06 +01:00
Gunar Schorcht
5e913a3974 boards/common/gd32v: add USB OTG support 2023-02-07 01:31:08 +01:00
Gunar Schorcht
43a92ed6cb boards/esp32-wemos-lolin-d32-pro: complete SD card MTD config 2023-02-07 01:18:56 +01:00
Gunar Schorcht
7e0d1df9c3 drivers/usbdev_synopsys_dwc2: add config type for GD32V 2023-02-07 00:49:42 +01:00
Gunar Schorcht
47e6136269 cpu/gd32v/vendor: add USB OTG definitions
This file contains the definitions for the DWC2 USB OTG FS IP Core from Synopsys as also defined in the CMSIS Device Peripheral Access Layer for each STM32 MCU and in the same way for ESP32x SoCs. GD32V MCUs use the same USB IP Core, but the vendor headers for these MCUs use a different register structure and different identifiers. To be able to use the same driver `usbdev_synopsys_dwc2`, the relevant USB IP core definitions have been extracted from `cmsis/f7/Include/stm32f767xx.h` which is under the copyright of STMicroelectronics, see below. This is the same file used by ESP32x SoCs but modified for GD32V MCUs.
2023-02-07 00:48:21 +01:00
bors[bot]
304245b328
Merge #19249
19249: boards/gd32v: improve board definitions r=benpicco a=gschorcht

### Contribution description

This PR provides some small improvements of the existing board definitions for GD32VF103 boards for more flexibel default configurations and documentation of the board peripherals:

- Allow the remapping of SPI0 pins in SPI configuration (ae984b0bea)
- More flexible I2C configuration (0c337583b4)
  The default I2C device configuration allows to define up to two I2C devices `I2C_DEV(0)` and `I2C_DEV(1)`. `I2C_DEV(0)` is always defined if the I2C peripheral is enabled by the module `periph_spi`. The second I2C device `I2C_DEV(1)` is only defined if `I2C_DEV_1_USED` is defined by the board. This allows to use the default configuration with one or two I2C devices depending on whether other peripherals are enabled that would collide with the I2C devices.
- More flexible SPI configuration (edbf59e37e)
  The default SPI device configuration allows to define up to two SPI devices `SPI_DEV(0)` and `SPI_DEV(1)`. `SPI_DEV(0)` is always defined if the SPI peripheral is enabled by the module `periph_spi`. The second SPI device `SPI_DEV(1)` is only defined if `SPI_DEV_1_USED` is defined by the board. This allows to use the default configuration with one or two SPI devices depending on whether other peripherals are enabled that would collide with the SPI devices.
Furthermore, the CS signal in the SPI configuration is given by a define that can be overriden with another pin if
the default CS signal is connected to an unused hardware.
- Improve ADC config for Sipeed-Longan-Nano (c9c587ee00)
  The ADC configuration was too complex. It was hard to follow when certain ADC lines are available. Furthermore, the order of ADC lines did depend on the use of other peripherals. Now, either the TFT display is not connected and all ADC lines are available or the TFT display is connected and the second SPI device is used so that only the first 4 ADC lines are available.
- Improve Kconfig for Sipeed-Longan-Nano (025f4fdf00)
  Board-specific configuration not shown any longer directly in the top level menu but within a submenu.
- Improve peripherals documentation (7f0d560dd8, e24abe495a)
 Available peripherals for the board are now documented in two tables ordered by RIOT peripheral names and by pins.

Although the different changes are small and mostly related to the documentation, I could split the PR if necessary.

### Testing

Green CI

### Issues/PRs references



Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-06 23:21:35 +00:00
Gunar Schorcht
6477976099 boards/esp32-wrover-kit: complete SD card MTD config 2023-02-06 23:37:40 +01:00
Gunar Schorcht
967ec447ae boards/common/esp*: set MTD offset for SD Cards to 1
Since the default MTD device `MTD_0` is the internal flash on ESP32x SoCs, SD card devices have to start at `MTD_1`.
2023-02-06 23:35:34 +01:00
Gunar Schorcht
dc5a1e9db0 cpu/gd32v: add periph_rtc_mem support 2023-02-06 22:22:01 +01:00
Gunar Schorcht
f0f9a026fc tests/periph_rtt: replace fixed buffer by riot_msg size 2023-02-06 22:21:19 +01:00
Karl Fessel
ce6a42ebdd tools/doccheck: add simple exclude to doccheck
uniq and sorted simple excludes
removes no longer needed exclude patterns
2023-02-06 16:35:43 +01:00