-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAC: Add wrapper around RIOTs DAC-interface #36
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for providing this PR, two comments/questions in-code.
src/dac.rs
Outdated
/// | ||
/// 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, is now done in 25dead1
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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