DAC: Add wrapper around RIOTs DAC-interface#36
Conversation
chrysn
left a comment
There was a problem hiding this comment.
Thanks for providing this PR, two comments/questions in-code.
| /// | ||
| /// Returns an Error if the given line does not exist | ||
| /// on the board. | ||
| pub fn new(line: dac_t) -> Result<Self, DACError> { |
There was a problem hiding this comment.
Would you mind trying this out with #37 (comment) ?
[edit addition]: It'll need to use the latest riot-sys master version, but if your test code is in the RIOT tree, its .cargo/config should allow a cargo update riot-sys to pick up on that version.
There was a problem hiding this comment.
It seems that DAC_LINE is missing from riot_sys/build.rs which seems to be the equivalent for *_DEV in the DAC interface.
There was a problem hiding this comment.
Sorry, I missed that reply. A version of -sys that adds DAC_LINE is being merged, and should thus be usable easily in a few mintues
This item was missed because it doesn't follow the XXX_DEV pattern used by other peripherals. See-Also: #17 Contributes-To: RIOT-OS/rust-riot-wrappers#36
chrysn
left a comment
There was a problem hiding this comment.
Great, I think this is ready.
I've taken the liberty to apply (and force-push) some white space fixes right away -- things wouldn't have been easier had I asked you to apply that manually.
I've added a minimal test application that ensures this actually gets built, which is added on top of your commits.
|
Thank you 👍 |
This pulls in several fixes from these repositories:
* riot-sys:
* Add `random` module to `riot-headers` (RIOT-OS/rust-riot-sys#26)
* README: fix 2 typos (RIOT-OS/rust-riot-sys#31)
* bindgen: Use 0.64 (RIOT-OS/rust-riot-sys#30)
* wolfSSL support added (RIOT-OS/rust-riot-sys#28)
* extern-types: Generate replacement types dynamically (RIOT-OS/rust-riot-sys#27)
* Extern types: Add netq_t, make them large (RIOT-OS/rust-riot-sys#25)
* doc: Suppress warnings about things C2Rust does not uphold (RIOT-OS/rust-riot-sys#23)
* export macro_DAC_LINE (RIOT-OS/rust-riot-sys#22)
* Add BINDGEN_OUTPUT_FILE export (RIOT-OS/rust-riot-sys#21)
* riot-wrappers:
* DAC: Add wrapper around RIOTs DAC-interface (RIOT-OS/rust-riot-wrappers#36)
* saul: Compatibly rename G* variants (RIOT-OS/rust-riot-wrappers#50)
* tests: Add test for auto-init when auto-init debug is active (RIOT-OS/rust-riot-wrappers#48)
* gcoap: Provide link encoder (RIOT-OS/rust-riot-wrappers#47)
* Drop SUIT support in riot-wrappers (RIOT-OS/rust-riot-wrappers#44)
* Add an auto init module (RIOT-OS/rust-riot-wrappers#45)
* gcoap: Allow registration without scope for 'static listeners (RIOT-OS/rust-riot-wrappers#43)
Through direct dependency changes (the bindgen update), the number of
transitive dependencies could be reduced.
19495: Rust: Update dependencies r=maribu a=chrysn
### Contribution description
This updates both the RIOT-specific and generic dependencies of Rust examples and modules.
### Testing procedure
* Green CI should do
### Issues/PRs references
Copying from one of the commits with some sed:
* riot-sys:
* RIOT-OS/rust-riot-sys#26
* RIOT-OS/rust-riot-sys#31
* RIOT-OS/rust-riot-sys#30
* RIOT-OS/rust-riot-sys#28
* RIOT-OS/rust-riot-sys#27
* RIOT-OS/rust-riot-sys#25
* RIOT-OS/rust-riot-sys#23
* RIOT-OS/rust-riot-sys#22
* RIOT-OS/rust-riot-sys#21
* riot-wrappers:
* RIOT-OS/rust-riot-wrappers#36
* RIOT-OS/rust-riot-wrappers#50
* RIOT-OS/rust-riot-wrappers#48
* RIOT-OS/rust-riot-wrappers#47
* RIOT-OS/rust-riot-wrappers#44
* RIOT-OS/rust-riot-wrappers#45
* RIOT-OS/rust-riot-wrappers#43
### How to do similar PRs
Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed):
```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done
```
Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time):
```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done
```
Creating the commit message:
```
$ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/ * /'
```
git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively.
Co-authored-by: chrysn <chrysn@fsfe.org>
19495: Rust: Update dependencies r=chrysn a=chrysn ### Contribution description This updates both the RIOT-specific and generic dependencies of Rust examples and modules. It also follows a deprecation from the G unit renaming originally done in #19292. ### Testing procedure * Green CI should do ### Issues/PRs references Copying from one of the commits with some sed: * riot-sys: * RIOT-OS/rust-riot-sys#26 * RIOT-OS/rust-riot-sys#31 * RIOT-OS/rust-riot-sys#30 * RIOT-OS/rust-riot-sys#28 * RIOT-OS/rust-riot-sys#27 * RIOT-OS/rust-riot-sys#25 * RIOT-OS/rust-riot-sys#23 * RIOT-OS/rust-riot-sys#22 * RIOT-OS/rust-riot-sys#21 * riot-wrappers: * RIOT-OS/rust-riot-wrappers#36 * RIOT-OS/rust-riot-wrappers#50 * RIOT-OS/rust-riot-wrappers#48 * RIOT-OS/rust-riot-wrappers#47 * RIOT-OS/rust-riot-wrappers#44 * RIOT-OS/rust-riot-wrappers#45 * RIOT-OS/rust-riot-wrappers#43 * (later, when the mistake became apparent) RIOT-OS/rust-riot-wrappers#55 ### How to do similar PRs Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done ``` Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done ``` Creating the commit message: ``` $ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/ * /' ``` git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively. Co-authored-by: chrysn <chrysn@fsfe.org>
This pulls in several fixes from these repositories:
* riot-sys:
* Add `random` module to `riot-headers` (RIOT-OS/rust-riot-sys#26)
* README: fix 2 typos (RIOT-OS/rust-riot-sys#31)
* bindgen: Use 0.64 (RIOT-OS/rust-riot-sys#30)
* wolfSSL support added (RIOT-OS/rust-riot-sys#28)
* extern-types: Generate replacement types dynamically (RIOT-OS/rust-riot-sys#27)
* Extern types: Add netq_t, make them large (RIOT-OS/rust-riot-sys#25)
* doc: Suppress warnings about things C2Rust does not uphold (RIOT-OS/rust-riot-sys#23)
* export macro_DAC_LINE (RIOT-OS/rust-riot-sys#22)
* Add BINDGEN_OUTPUT_FILE export (RIOT-OS/rust-riot-sys#21)
* riot-wrappers:
* DAC: Add wrapper around RIOTs DAC-interface (RIOT-OS/rust-riot-wrappers#36)
* saul: Compatibly rename G* variants (RIOT-OS/rust-riot-wrappers#50)
* tests: Add test for auto-init when auto-init debug is active (RIOT-OS/rust-riot-wrappers#48)
* gcoap: Provide link encoder (RIOT-OS/rust-riot-wrappers#47)
* Drop SUIT support in riot-wrappers (RIOT-OS/rust-riot-wrappers#44)
* Add an auto init module (RIOT-OS/rust-riot-wrappers#45)
* gcoap: Allow registration without scope for 'static listeners (RIOT-OS/rust-riot-wrappers#43)
Through direct dependency changes (the bindgen update), the number of
transitive dependencies could be reduced.
(cherry picked from commit de41031)
19505: Rust: Update dependencies [backport 2023.04] r=maribu a=maribu # Backport of #19495 ### Contribution description This updates both the RIOT-specific and generic dependencies of Rust examples and modules. It also follows a deprecation from the G unit renaming originally done in #19292. ### Testing procedure * Green CI should do ### Issues/PRs references Copying from one of the commits with some sed: * riot-sys: * RIOT-OS/rust-riot-sys#26 * RIOT-OS/rust-riot-sys#31 * RIOT-OS/rust-riot-sys#30 * RIOT-OS/rust-riot-sys#28 * RIOT-OS/rust-riot-sys#27 * RIOT-OS/rust-riot-sys#25 * RIOT-OS/rust-riot-sys#23 * RIOT-OS/rust-riot-sys#22 * RIOT-OS/rust-riot-sys#21 * riot-wrappers: * RIOT-OS/rust-riot-wrappers#36 * RIOT-OS/rust-riot-wrappers#50 * RIOT-OS/rust-riot-wrappers#48 * RIOT-OS/rust-riot-wrappers#47 * RIOT-OS/rust-riot-wrappers#44 * RIOT-OS/rust-riot-wrappers#45 * RIOT-OS/rust-riot-wrappers#43 * (later, when the mistake became apparent) RIOT-OS/rust-riot-wrappers#55 ### How to do similar PRs Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done ``` Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done ``` Creating the commit message: ``` $ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/ * /' ``` git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively. Co-authored-by: chrysn <chrysn@fsfe.org>
19505: Rust: Update dependencies [backport 2023.04] r=maribu a=maribu # Backport of #19495 ### Contribution description This updates both the RIOT-specific and generic dependencies of Rust examples and modules. It also follows a deprecation from the G unit renaming originally done in #19292. ### Testing procedure * Green CI should do ### Issues/PRs references Copying from one of the commits with some sed: * riot-sys: * RIOT-OS/rust-riot-sys#26 * RIOT-OS/rust-riot-sys#31 * RIOT-OS/rust-riot-sys#30 * RIOT-OS/rust-riot-sys#28 * RIOT-OS/rust-riot-sys#27 * RIOT-OS/rust-riot-sys#25 * RIOT-OS/rust-riot-sys#23 * RIOT-OS/rust-riot-sys#22 * RIOT-OS/rust-riot-sys#21 * riot-wrappers: * RIOT-OS/rust-riot-wrappers#36 * RIOT-OS/rust-riot-wrappers#50 * RIOT-OS/rust-riot-wrappers#48 * RIOT-OS/rust-riot-wrappers#47 * RIOT-OS/rust-riot-wrappers#44 * RIOT-OS/rust-riot-wrappers#45 * RIOT-OS/rust-riot-wrappers#43 * (later, when the mistake became apparent) RIOT-OS/rust-riot-wrappers#55 ### How to do similar PRs Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done ``` Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time): ``` $ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done ``` Creating the commit message: ``` $ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/ * /' ``` git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively. 19509: cpu/cc26xx_cc13xx: Fix bogus array-bound warning [backport 2023.04] r=maribu a=maribu # Backport of #19504 ### Contribution description GCC 12 create a bogus array out of bounds warning as it assumes that because there is special handling for `uart == 0` and `uart == 1`, `uart` can indeed be `1`. There is an `assert(uart < UART_NUMOF)` above that would blow up prior to any out of bounds access. In any case, optimizing out the special handling of `uart == 1` for when `UART_NUMOF == 1` likely improves the generated code and fixes the warning. /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:88:8: error: array subscript 1 is above array bounds of 'uart_isr_ctx_t[1]' [-Werror=array-bounds] 88 | ctx[uart].rx_cb = rx_cb; | ~~~^~~~~~ /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:52:23: note: while referencing 'ctx' 52 | static uart_isr_ctx_t ctx[UART_NUMOF]; | ^~~ /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:89:8: error: array subscript 1 is above array bounds of 'uart_isr_ctx_t[1]' [-Werror=array-bounds] 89 | ctx[uart].arg = arg; | ~~~^~~~~~ /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:52:23: note: while referencing 'ctx' 52 | static uart_isr_ctx_t ctx[UART_NUMOF]; | ^~~ ### Testing procedure The actual change is a pretty obvious one-liner, so that code review and a green CI should be sufficient. If not, running any UART example app without regression should do. ### Issues/PRs references None 19510: tools/openocd: Fix handling of OPENOCD_CMD_RESET_HALT [backport 2023.04] r=maribu a=maribu # Backport of #19506 ### Contribution description The OPENOCD_CMD_RESET_HALT was not longer correctly passed to the script. This fixes the issue. ### Testing procedure Flashing of e.g. the `cc2650-launchpad` with upstream OpenOCD should work again. ### Issues/PRs references The change was added to #19050 after testing the PR and before merging. I'm not sure if the fix never worked because of this, or if behavior of `target-export-variables` or GNU Make changed. Co-authored-by: chrysn <chrysn@fsfe.org> Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
This pulls in several fixes from these repositories:
* riot-sys:
* Add `random` module to `riot-headers` (RIOT-OS/rust-riot-sys#26)
* README: fix 2 typos (RIOT-OS/rust-riot-sys#31)
* bindgen: Use 0.64 (RIOT-OS/rust-riot-sys#30)
* wolfSSL support added (RIOT-OS/rust-riot-sys#28)
* extern-types: Generate replacement types dynamically (RIOT-OS/rust-riot-sys#27)
* Extern types: Add netq_t, make them large (RIOT-OS/rust-riot-sys#25)
* doc: Suppress warnings about things C2Rust does not uphold (RIOT-OS/rust-riot-sys#23)
* export macro_DAC_LINE (RIOT-OS/rust-riot-sys#22)
* Add BINDGEN_OUTPUT_FILE export (RIOT-OS/rust-riot-sys#21)
* riot-wrappers:
* DAC: Add wrapper around RIOTs DAC-interface (RIOT-OS/rust-riot-wrappers#36)
* saul: Compatibly rename G* variants (RIOT-OS/rust-riot-wrappers#50)
* tests: Add test for auto-init when auto-init debug is active (RIOT-OS/rust-riot-wrappers#48)
* gcoap: Provide link encoder (RIOT-OS/rust-riot-wrappers#47)
* Drop SUIT support in riot-wrappers (RIOT-OS/rust-riot-wrappers#44)
* Add an auto init module (RIOT-OS/rust-riot-wrappers#45)
* gcoap: Allow registration without scope for 'static listeners (RIOT-OS/rust-riot-wrappers#43)
Through direct dependency changes (the bindgen update), the number of
transitive dependencies could be reduced.
Adds a wrapper around RIOTS dac-interface