|
| 1 | +# Embedded Working Group Meeting 2024-05-14 |
| 2 | + |
| 3 | +* [Coordination Repository] |
| 4 | +* Meetings: Tuesday 8pm Europe/Berlin time |
| 5 | +* [Join the Chat] |
| 6 | +* Today's date: 2024-05-14 |
| 7 | +* [Nominated issues](https://github.com/search?q=org%3Arust-embedded+label%3Anominated+is%3Aopen&type=Issues) |
| 8 | +* [Discussion topic](https://github.com/rust-embedded/wg/discussions/747) |
| 9 | +* [IRC logs] |
| 10 | + |
| 11 | +[Coordination Repository]: https://github.com/rust-embedded/wg |
| 12 | +[Join the Chat]: https://matrix.to/#/#rust-embedded:matrix.org |
| 13 | +[IRC logs]: https://libera.irclog.whitequark.org/rust-embedded/2024-05-14 |
| 14 | + |
| 15 | +## Attendance |
| 16 | + |
| 17 | +Write your GH username or Matrix handle here! |
| 18 | + |
| 19 | +* adamgreig |
| 20 | +* dirbaio |
| 21 | +* jamesmunns |
| 22 | +* Adam Hott |
| 23 | +* hdoordt |
| 24 | +* sirhcel |
| 25 | +* nastevens |
| 26 | +* alevy |
| 27 | +* newAM |
| 28 | +* therealprof |
| 29 | +* bartmassey |
| 30 | +* jannic (late) |
| 31 | + |
| 32 | +## Agenda |
| 33 | + |
| 34 | +* Announcements |
| 35 | + * svd2rust 0.33.3 released |
| 36 | + * tracking issue to discuss postcard 2.0 https://github.com/jamesmunns/postcard/issues/128 |
| 37 | +* RustNL recap |
| 38 | + * https://hackmd.io/p6bQ0OzqTj-R9ra11LvP8A |
| 39 | + * Roadmap for WG work |
| 40 | + * Keep working on supported targets and foundational crates like embedded-hal |
| 41 | + * Improve documentation, tutorials, examples, libraries to ensure many more |
| 42 | + people can become embedded Rust developers |
| 43 | + * Improve visibility and discoverability of our work, especially considering |
| 44 | + specific target audiences |
| 45 | + * Coordinate with vendors |
| 46 | + * Ensure we have a good experience for hobbyists coming from platforms such as Arduino, |
| 47 | + including GUI-only installation experience |
| 48 | + * Working group meetings and structure |
| 49 | + * We'd like to remain part of the Rust project and on the whole they'd like something like that too |
| 50 | + * There's a proposed "Rust Application Organisation" (name TBC) to collect Rust _users_, which we might also become involved in |
| 51 | + * We should be involved on the Rust Zulip more to improve communication with Project members |
| 52 | + * Proposal for a new sub-team who are responsible for directly interacting with the Rust Project and have a weekly meeting on Zulip (maybe not every week, depending on what topics come up) |
| 53 | + * Use of volatilecell and PAC singletons |
| 54 | + * We need to stop using vcell, move svd2rust and cortex-m to chiptool-style pointers in structs which generate offsets for register access |
| 55 | + * Still want to split c-m into PAC/HAL layer (and perhaps -asm) |
| 56 | + * Concluded to propose removing owned singletons from svd2rust, make this a HAL concern instead |
| 57 | + * Proposal for new MMIO functionality in Rust itself, e.g. mmio_read/mmio_write on ptr, |
| 58 | + and in the interim we could emulate this in cortex-m with inline assembly |
| 59 | + * Also add an mmio_fence function |
| 60 | + * Rust + Bluetooth |
| 61 | + * Work in progress on TrouBLE with some tasks assigned |
| 62 | + * PAC/Arch/Runtime crate interactions |
| 63 | + * Agreed on previous plan to make cortex-m-pac-interface with interrupt trait so that PACs don't have to depend on arch or runtime crates |
| 64 | + * Looked at how Risc-V is split (-pac, -peripheral, -, -rt) |
| 65 | + * Discussed interrupt macro syntax options to be able to separate it from the PACs, |
| 66 | + current conclusion is something like `#[interrupt(pac::Interrupt::UART0)] fn foo() {}` |
| 67 | + * Binary data structure representations |
| 68 | + * Documentation |
| 69 | + * Discussed a plan (see hackmd link above) for discovery book: |
| 70 | + * Split and archive the old f3disco and mb1 books |
| 71 | + * Pros |
| 72 | + * Prevents creating new issues for the old books |
| 73 | + * Cons |
| 74 | + * Is there actually a need for maintaining the older books? |
| 75 | + * What about just keeping them (along with their issues) "archived" (issues closed) in the same repo? |
| 76 | + * In combination with hosting the older books as-is (see below) |
| 77 | + * Update current book for full mb2 |
| 78 | + * Discussed having a simple BSP that's part of the book (or its own crate) to keep the first examples easy, moving to direct HAL use later in the book |
| 79 | + * Might be able to obtain funding to pay students to help with some chapters |
| 80 | + * Need better CI |
| 81 | + * Also want to create a new FAQ page with common questions |
| 82 | + * We should check where else users are asking questions, such as Discourse |
| 83 | + * HAL reference examples |
| 84 | + * Probe-rs |
| 85 | + * Lots of things to work on and roadmap items planned, see doc for details |
| 86 | + * Discussed embedded pain points with Rust project |
| 87 | + * Future of static mut |
| 88 | + * We discussed the `grounded` crate |
| 89 | + * Rust wants to more or less deprecate the use of static mut, it already generates a warning and will |
| 90 | + be forbidden in the 2024 edition |
| 91 | + * `grounded` offers some well-documented wrappers for many common use cases |
| 92 | + * We decided to keep developing/documenting grounded as-is for the immediate time being, with a plan to move it into the wg libs team soon, and potentially see some structs move into Rust itself later |
| 93 | + * Binary code size discussion |
| 94 | + * Various code size pain points discussed |
| 95 | + * RFC opened to add a new flag to std allowing size optimisations |
| 96 | +* Embedded HAL |
| 97 | +* Documentation |
| 98 | + * Discovery book |
| 99 | + * Issues [#568](https://github.com/rust-embedded/discovery/issues/568) & [#567](https://github.com/rust-embedded/discovery/issues/567) |
| 100 | + * Permission to resources team for @hdoordt and @bartmassey? |
| 101 | + * https://github.com/rust-embedded/wg/pull/756 |
| 102 | + * Keeping the previous books hosted? |
| 103 | + * Pros |
| 104 | + * Keeping these variants still easily accessible |
| 105 | + * Catching unknown links under https://docs.rust-embedded.org/discovery/, tell about the new book and still guide to the older variants |
| 106 | + * Being friendly and not letting aspiring Rust embedded devs with already some cognitive load on their journey just hit a 404 wall |
| 107 | + * Cons |
| 108 | + * Some work for embedded WG |
| 109 | + * Referencing known-good documentation for architectures not covered in the book like std-sync and std-async (on ESP32) |
| 110 | + * See for example https://github.com/rust-embedded/discovery/pull/559 |
| 111 | + * Providing some guidance in contrast somewhat somewhat overwhelming _Awesome Embedded Rust_ for beginners |
| 112 | +* Actions-rs deprecated for GitHub Actions |
| 113 | + * Issue [#754](https://github.com/rust-embedded/wg/issues/754) |
| 114 | + * Do we need separate issues per-repo, or "just do it"? |
| 115 | + * Preferences for rust-toolchain versus just rustup? |
| 116 | + * Anything (checks, dependabot, etc) that should be included/excluded from all repos? |
| 117 | + * Decided nastevens will go through repos currently on actions-rs and do simple migration |
| 118 | + * Then use what's learned from this migration to propose CI template if it makes sense |
| 119 | +* risc-v CSR access unsafe or not? https://github.com/rust-embedded/riscv/issues/209 |
| 120 | + |
| 121 | +## Last Week's Minutes |
| 122 | + |
| 123 | +* Announcements |
| 124 | + * embedded-hal-bus 0.2 released with AtomicDevice |
| 125 | + * Target docs for thumb targets PR underway: https://github.com/rust-lang/rust/pull/124404 |
| 126 | + * @thejpster stepping down from wg and leadership council |
| 127 | + * next week's meeting is skipped, resuming the week after (on 14th may) |
| 128 | +* Embedded HAL |
| 129 | + * AtomicDevice use of portable_atomic means build fails on armv6 https://github.com/rust-embedded/embedded-hal/issues/598 |
| 130 | + * add atomic-device feature, enable AtomicDevice if feature is enabled or cfg(target_has_atomic..), add atomic-critical-section and atomic-unsafe-assume-single-core (or portable-atomic-...?) which proxy to p-a and also enable atomic-device, document this, release as 0.3 |
| 131 | +* Tooling docs update: https://github.com/CodingInGreen/tooling |
| 132 | + * what to add? |
| 133 | +* Maintenance of STM32 Discovery Book? |
| 134 | + * Is our most complete book |
| 135 | + * Does not seem to be in widespread use anymore |
| 136 | + * Board has changed version |
| 137 | + * Two books is a lot |
| 138 | + * Conclusion: don't worry about the stm32 book, mark it as more clearly archived/read-only/deprecated |
0 commit comments