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

42235 Commits

Author SHA1 Message Date
Teufelchen1
c9e9a8d2f1 native: Remove code used for __MACH__ target 2022-12-22 17:57:25 +01:00
bors[bot]
f539035c86
Merge #18756
18756: drivers/usbdev_synopsys_dwc2: add EFM32 support r=chrysn a=gschorcht

### Contribution description

This PR provides the changes for the Synopsys USB OTG IP core DWC2 driver for EFM32 MCUs. It also provides the changes of the board definition for `stk3600` and `stk3700` for testing.

### Testing procedure

`tests/usbus_hid` should work on the EFM32 boards `stk3600` (EFM32LG family) and `stk3700` (EFM32GG family).

It is already tested for a `sltb009a` board (EFM32GG12 family).

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-12-19 12:55:57 +00:00
bors[bot]
b71df25282
Merge #19048
19048: drivers/sht2x: some small improvements r=benpicco a=gschorcht

### Contribution description

This PR provides the following improvements for the SHT2x driver:

- migration to `ztimer` 8a605517f5 and 367549940de3bd8910052334c34af028d4992741
- floating point arithmetics replaced by integer arithmetics f424caebbfec9f2be56aa2337c6cc09dba5b97d6
- fix of sleep times (typical times replaced by maximum times as recommended by the datasheet) 13615c72094b8541ee62c3e8ed5a36dc4d725fd0
- release of the I2C bus during sleep 9415c216cfab734520ef98dd00b350c22f342c60
- Kconfig configuration of sensor parameters added dadbbcb4c328350893db53ba6743d03cb34ecc1c
- no-hold mode is now the default mode instead of the hold mode

Regarding the sleep times: The typical measurement times were used as sleep times. According to the datasheet, typical measurements are only recommended for calculating energy consumption, while maximum values should be used for calculating waiting times in communication. Therefore, the typical time values were replaced by maximum time values for the sleep in no-hold mode.

Regarding the hold mode: In hold mode, the sensor uses clock stretching until the measurement results can be read by the MCU. This blocks both the I2C bus and the MCU during the entire measurement, which can take up to 85 ms if I2C is not interrupt-driven. Therefore, the no-hold mode is now used by default, where the calling thread sleeps during the measurement, but the MCU is not completely blocked. Furthermore, the hold mode requires that the MCU supports clock stretching. Even if the MCU supports clock stretching, the hold mode with clock stretching doesn't seem to work with different MCUs. I couldn't get it working for STM32 and ESP32.

Regarding the I2C bus during sleep: If the no-hold mode is used and the calling thread sleeps up to 85 ms, it makes sense to release the I2C bus until the measurement results are available.

### Testing procedure

`tests/driver_sht2x` should still work.

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-12-15 12:42:30 +00:00
bors[bot]
2ea6a2af1e
Merge #19053
19053: net/ieee802154: make default ack request configurable r=jia200x a=jue89



Co-authored-by: Jue <me@jue.yt>
2022-12-15 10:15:31 +00:00
Gunar Schorcht
000d449d88 drivers/sht2x: use sys/checksum/crc8 2022-12-14 21:47:32 +01:00
Gunar Schorcht
009afd1173 drivers/sht2x: extend Kconfig by sensor parameters 2022-12-14 21:47:32 +01:00
Gunar Schorcht
ff3cbd13ea drivers/sht2x: release I2C bus during sleep 2022-12-14 21:47:32 +01:00
Gunar Schorcht
43819464f7 drivers/sht2x: fix measurement duration
According to the data sheet, typical times are recommended for calculating energy consumption, while maximum values should be used for calculating waiting times in communication. Therefore, the typical time values are replaced by maximum time values for sleep.
2022-12-14 21:47:32 +01:00
Gunar Schorcht
58f915e2e3 drivers/sht2x: replace float by int calculations 2022-12-14 21:47:32 +01:00
Gunar Schorcht
e152159a35 tests/driver_sht2x: migration to ztimer 2022-12-14 21:47:32 +01:00
bors[bot]
481ab25e69
Merge #19054
19054: ieee802154_submac: migrate to ztimer r=benpicco a=jue89



Co-authored-by: Jue <me@jue.yt>
2022-12-14 19:09:53 +00:00
bors[bot]
10c1909f2d
Merge #19046
19046: gnrc & coap: misc minor changes r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2022-12-14 17:18:05 +00:00
Jue
8f174bbef2 ieee802154_submac: migrate to ztimer 2022-12-14 16:41:27 +01:00
Jue
087931c5f2 at86rf215: respect ack request option 2022-12-14 16:29:01 +01:00
Jue
06de22637c at86rf2xx: respect ack request option 2022-12-14 16:29:01 +01:00
Jue
5c2db89c20 ieee802154_submac: respect ack request option 2022-12-14 16:29:01 +01:00
Jue
4930a81ae4 kw41zrf: respect ack request option 2022-12-14 16:29:01 +01:00
Jue
6ff38347b3 net/ieee802154: add option for default ack request 2022-12-14 16:29:01 +01:00
bors[bot]
fca501c2fe
Merge #19033
19033: Fix soft spi bugs r=aabadie a=Enoch247

### Contribution description

This PR contains some small bug and spelling fixes I noticed while reading the soft_spi code while using it as an example for writing my own driver. See the commit comments for details of each change.


### Testing procedure

I compiled, but did not run, tests/driver_soft_spi. The change is minor and verifiable by simply looking at the code.


### Issues/PRs references

- None


Co-authored-by: Joshua DeWeese <jdeweese@primecontrols.com>
2022-12-14 15:22:00 +00:00
Joshua DeWeese
aba1d9aaf0 drivers/soft_spi: fix device validation bug
The code did not take into account that valid bus numbers are
0...(COUNT-1).

This patch corrects this. It also makes use of the newly introduced
SOFT_SPI_NUMOF define.
2022-12-14 08:18:45 -05:00
Joshua DeWeese
022192ecee drivers/soft_spi: fix over-allocation of locks
The intent was to allocate one lock per device, but that was not the
case in practice. This patch fixes this.
2022-12-14 08:18:29 -05:00
bors[bot]
8459b68654
Merge #19047
19047: sys/bitfield: add atomic variants of write functions r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Benjamin Valentin <benjamin.valentin@bht-berlin.de>
2022-12-13 23:27:56 +00:00
Benjamin Valentin
a9120a38ca cpu/lm4f120: remove stdlib include 2022-12-14 00:22:02 +01:00
bors[bot]
d08601ec97
Merge #19039
19039: Ensure C locale when querying the compiler for compile commands r=maribu a=janhenke

### Contribution description

This fixes generating the compile commands with localization enabled GCC and non-English shell locale. The python script uses regexes to extract the required information. These only match on the default English output. GCC supports localized output messages which break the regexes used. Instead of matching any possible localization, this fix forces the C locale for message output on the compiler invocation, thus ensuring the regexes can match.

### Testing procedure

Needed: arm-none-eabi.gcc with localization support and non-English system locale.
Invoke the compile-commands make target (`make compile-commands`).

It should generate the `compile_commands.json` file correctly.

### Issues/PRs references

None found, fix was trivial enough to fix it directly.


Co-authored-by: Jan Henke <Jan.Henke@taujhe.de>
2022-12-13 18:56:57 +00:00
Jan Henke
53c8ebc287
dist/tools/compile_commands: Fix interoperability with localized GCC
GCC supports localized outputs, depending on the currently set locale.
This broke the compile-commands target, as the regexes only match the
English output. By invoking the compiler explicitly with the C locale,
it ensures the expected English language output.
2022-12-13 18:48:43 +01:00
Benjamin Valentin
aa376f05c0 cpu/arm7_common: drop cyclic include 2022-12-13 15:55:17 +01:00
Benjamin Valentin
b2c5c16a08 sys/bitfield: don't use ambiguous 'size of the bitfield'
It's otherwise unclear if those are bits or bytes.
2022-12-13 13:09:31 +01:00
Benjamin Valentin
7ed0f7355f sys/bitfield: add bf_clear_all() 2022-12-13 13:09:31 +01:00
bors[bot]
a0f823c553
Merge #19023
19023: pkg/tinyusb: fix Kconfig problems r=maribu a=gschorcht

### Contribution description

This PR tries to fix the [problems with `tinyUSB` in nightlies](https://ci.riot-os.org/details/d11b383ba0cd45048ed6f8d98abbc0de).
- The `tinyusb_device` feature had to be moved from `boards/common/arduino-zero` definition to the `boards/arduino-zero` definition because the common `arduino-zero` features are also used by `wemos-zero` which uses the `highlevel_stdio` feature via the `stdio_cdc_acm` module.
- The `tinyusb_device` feature had to be removed from Kconfig of board `stm32f429i-disco` since it uses the `highlevel_stdio` feature via the `stdio_cdc_acm` module.

### Testing procedure

Green CI

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-12-13 10:27:45 +00:00
Gunar Schorcht
8a605517f5 drivers/sht2x: migration to ztimer 2022-12-13 00:51:51 +01:00
Benjamin Valentin
9b09f673fd sys/bitfield: add atomic variants of write functions 2022-12-13 00:32:01 +01:00
Benjamin Valentin
1a4c21fb97 nanocoap: turn coap_szx2size() into a macro 2022-12-13 00:27:45 +01:00
Benjamin Valentin
2002e169dd net/coap: add COAP_CODE_TOO_MANY_REQUESTS 2022-12-13 00:27:45 +01:00
Benjamin Valentin
ba857582a3 gnrc_netif: constify group parameter 2022-12-13 00:24:44 +01:00
bors[bot]
dc976571f1
Merge #19043
19043: tools/vagrant: fix Ubuntu version in README r=kaspar030 a=aabadie



Co-authored-by: Alexandre Abadie <alexandre.abadie@inria.fr>
2022-12-12 23:16:59 +00:00
bors[bot]
83f1561053
Merge #19042
19042: boards/rpi-pico: doc - fix link to datasheet r=benpicco a=krzysztof-cabaj

### Contribution description

This PR fix link to datasheet - previous one points to some jpg file and ends with 404. 

### Testing procedure

```
make doc
xdg-open doc/doxygen/html/group__boards__rpi__pico.html
```
and check if link shows datasheet.

### Issues/PRs references

None

Co-authored-by: krzysztof-cabaj <kcabaj@gmail.com>
2022-12-12 16:53:21 +00:00
23cd98a654
tools/vagrant: fix Ubuntu version in README 2022-12-12 16:59:58 +01:00
krzysztof-cabaj
d11a6409fe boards/rpi-pico: doc - fix link to datasheet 2022-12-12 06:02:55 -05:00
Gunar Schorcht
b805709791 boards/stm32f429i-disc1: disable tinyusb feature for stm32f429i-disco 2022-12-12 06:37:53 +01:00
bors[bot]
268e931f1c
Merge #19012
19012: boards/arduino-mega2560: add TTY_BOARD_FILTER r=gschorcht a=maribu

### Contribution description

This allows automatically selecting TTY actually belonging to an
Arduino Mega2560 if `MOST_RECENT_PORT=1` is set.

### Testing procedure

```
make BOARD=arduino-mega2560 MOST_RECENT_PORT=1 -C examples/default flash term
```

Should automatically select the TTY of the most recently connected Arduino Mega2560, even if a board of a different type is connect more recently.

### Issues/PRs references

- [x] depends on (and includes) https://github.com/RIOT-OS/RIOT/pull/19011

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2022-12-11 18:20:38 +00:00
Marian Buschsieweke
dadf22f07a
boards/arduino-mega2560: add TTY_BOARD_FILTER
This allows automatically selecting TTY actually belonging to an
Arduino Mega2560 if `MOST_RECENT_PORT=1` is set.

Note: Unless `ARDUINO_MEGA2560_COMPAT_WITH_CLONES` is set to `0`,
this will fall back to detecting any cheap USB UART bridge typically
found in Arduino Mega 2560 clones if no genuine Arduino Mega is found.
2022-12-11 18:58:19 +01:00
Marian Buschsieweke
208bf7eef3
build system: improve MOST_RECENT_PORT=1 handling
Allow overriding the shell command used to auto-detect the TTY of a
board with `MOST_RECENT_PORT=1` via the `TTY_SELECT_CMD` variable.
The use case is to also detect Arduino Mega 2560 clones with cheap
USB UART bridges (for which the filter command may yield false
positives) while preferring genuine Arduino Mega 2560 boards (if
found) over the clones (as the filter for genuine boards does not yield
false positives).
2022-12-11 18:58:18 +01:00
bors[bot]
de3241e90f
Merge #18962 #18999 #19034
18962: pkg/lwip: Force loglevel when using log module r=maribu a=yarrick



18999: Paho: Allow building for 8 and 16 bit platforms r=maribu a=OlegHahm

### Contribution description

Providing a patch to Paho upstream which uses fixed size integers (int32_t) instead of plain int whenever it is used to represent a size of an object.

This patch will allow to build the Paho package for platforms where an integer has a width of less than 32 bit.

This patch is also provided as a PR to the upstream version of Paho (https://github.com/eclipse/paho.mqtt.embedded-c/pull/238) but unfortunately the upstream seems to be unmaintained.

### Testing procedure

Build for a 8 or 16 bit platform that has enough memory for the example, e.g., https://api.riot-os.org/group__boards__atxmega-a1u-xpro.html:
BUILD_IN_DOCKER=1 BOARD=atxmega-a1u-xpro make clean all

Without this PR this build will fail, with the patches applied it will succeed.

### Issues/PRs references

This PR makes #18997 obsolete and thus reverts the change.


19034: boards/nucleo-l496zg: doc improvement r=maribu a=krzysztof-cabaj

### Contribution description

This PR adds to nucleo-l496zg documentation MCU table - similar to those, for example for, Nucleo F103RB, F302R8 or F446RE.

### Testing procedure

```
make doc
xdg-open doc/doxygen/html/group__boards__nucleo-l496zg.html
```

### Issues/PRs references

None

Co-authored-by: Erik Ekman <eekman@google.com>
Co-authored-by: Oleg Hahm <oleg@hobbykeller.org>
Co-authored-by: krzysztof-cabaj <kcabaj@gmail.com>
2022-12-11 12:03:28 +00:00
bors[bot]
7c7aede939
Merge #19026
19026: riscv: Reduce reset trampoline code size by 2 bytes r=maribu a=jnohlgard

`addi` with 20 bit immediate does not have a compressed representation, so using `jalr` with immediate offset uncompressed is smaller than using `addi`+`c.jr`

Co-authored-by: Joakim Nohlgård <joakim@nohlgard.se>
2022-12-11 10:17:39 +00:00
krzysztof-cabaj
185c44e42d boards/nucleo-l496zg: doc improvement 2022-12-10 11:41:45 -05:00
bors[bot]
bc0dcb9a36
Merge #19032
19032: sys/analog_util/dac_util: fix truncation bug r=maribu a=Enoch247

### Contribution description

From the commit message:

>  In `dac_util_map(...)` the expression `((value - min) * UINT16_MAX)` was cast to a 16 bit unsigned, then divided by `(max - min)`. This means that anytime `(value - min) != 0` the numerator was truncated prior to being divided and then returned.
> 
>  This patch modifies the expression so that the downcast to 16 bits is performed as the last operation.


### Testing procedure

Should be verifiable by simply analyzing the code.

### Issues/PRs references

none known


Co-authored-by: Joshua DeWeese <jdeweese@primecontrols.com>
2022-12-10 15:27:39 +00:00
Joshua DeWeese
d786883859 drivers/soft_spi: fix misspelling in comment 2022-12-09 14:35:04 -05:00
Joshua DeWeese
86d751d4d3 sys/analog_util/dac_util: fix truncation bug
In `dac_util_map(...)` the expression `((value - min) * UINT16_MAX)` was
cast to a 16 bit unsigned, then divided by `(max - min)`. This means
that anytime `(value - min) != 0` the numerator was truncated prior to
being divided and then returned.

This patch modifies the expression so that the downcast to 16 bits is
performed as the last operation.
2022-12-09 13:58:12 -05:00
Marian Buschsieweke
86b7159e37
dist/tools/usb-serial/ttys.py: return error on empty list
If no TTY serial (matching the given filters, if any) was found, use
the exit code `1`. The idea is that simple shell scripts falling back
to alternative variants of a board can be used via

```.sh
ttys.py --most-recent --model Fooboard --vendor Footronic || \
    ttys.py --most-recent --model Barboard --vendor Bartronic
```

Just adding a regex that would accept both vendors and models would
have different semantics: If both a Fooboard and a Barboard are
attached, it would pick the most recently connected of both. The shell
expression above would always prefer a Fooboard over a Borboard.

The use case cheap Arduino clones that replace the ATmega16U2 used
as USB UART bridge with cheap single purpose chips. The original
ATmega16U2 has the advantage that it provides identification data
unique the specific Arduino board, while the clones cannot be told
apart from standalone USB UART bridges or Arduino clones of other
models. Hence, we want to pick the genuine Arduino board if connected,
and only fall back to matching cheap USB UART bridges if no genuine
Arduino board is connected.
2022-12-09 13:00:54 +01:00
bors[bot]
ff2ebcfce0
Merge #19028
19028: CI: bors.toml: set cut_body_after r=aabadie a=kaspar030



Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2022-12-09 09:03:13 +00:00