-
Notifications
You must be signed in to change notification settings - Fork 42
Add new section 'Supporting a new SoC' #99
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
base: master
Are you sure you want to change the base?
Conversation
ecosystem around their System-on-Chip (SoC). | ||
|
||
**Note:** For assistance with strategy in engaging with the community, we | ||
recommend reaching out to the Embedded Rust Working Group (REWG) leads. They |
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.
looks like the acronym should change to ERWG?
offers logging capabilities for embedded systems, the Embedded Rust ecosystem | ||
has developed numerous tools. `probe-rs` supports a wide range of target |
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.
the final sentence here --- the Embedded Rust ecosystem has developed numerous tools --- doesn't seem to fit well in the paragraph. How about?
The Embedded Rust ecosystem offers various tools used for debugging
and testing, with probe-rs
being one of the most widely
used. Combined with debug-based facilities like defmt-rtt
, which
provides logging capabilities for embedded systems, these tools form a
powerful foundation for development. probe-rs
supports a wide range
of target architectures, debug interfaces, and debug probe protocols.
Thorough testing ensures hardware-software reliability, and leveraging these
tools can significantly enhance development workflows.
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.
this is a random passing-by review, i don't have a stake in this but saw it and was positively surprised by it!
one thing i'm wondering: it seems that a lot of HAL activity is now centered around embassy
(with the exception of e.g. esp-hal
). i'm wondering if this should be explicitly pointed out so that vendors could opt to implement their PACs & HALs directly in embassy
rather than having them separate? OTOH embassy
is not a WG project, thus this might be the wrong place for this?
### Flash Algorithms | ||
|
||
[Flash Algorithms](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/flashAlgorithm.html) | ||
are integrated with debugging tools like `probe-rs`. They facilitate and speed |
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.
are integrated with debugging tools like `probe-rs`. They facilitate and speed | |
are integrated with debugging tools like [`probe-rs`](https://probe.rs/). They facilitate and speed |
recommend reaching out to the Embedded Rust Working Group (REWG) leads. They | ||
can provide valuable insights and support to help you navigate the process | ||
effectively. | ||
|
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.
i think step 0 is missing: support for the target architecture in LLVM (and step 0b: rustc using an LLVM version which contains said support).
the alternative is the manufacturer maintaining an LLVM & rustc fork (until things get upstreamed, anyway), see what espressif is doing with espup
for the xtensa arch.
|
||
### Generate and Maintain PACs | ||
|
||
Multiple tools such as `svd2rust`, `chiptool`, `raltool`, and `svd2pac` |
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.
maybe add links to the different tools (e.g. to their crates.io entry) to make it easier to find them?
|
||
### Develop and Maintain HAL Crates | ||
|
||
Implement `embedded-hal` and `embedded-hal-async` traits in your HAL crates. |
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.
again, i'd suggest adding crates.io links
|
||
- Ensure that crates are compatible with `no_std` environments, which are | ||
common in embedded systems without an operating system. Functionality that | ||
needs `alloc` or `std` can be included when gated with Cargo "features." |
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.
needs `alloc` or `std` can be included when gated with Cargo "features." | |
needs `alloc` or `std` can be included when gated with [Cargo "features"](https://doc.rust-lang.org/cargo/reference/features.html). |
needs `alloc` or `std` can be included when gated with Cargo "features." | ||
- Make your crates available on [crates.io](https://crates.io/) to maximize | ||
visibility and ease of use for developers. | ||
- Use semantic versioning to maintain consistency and predictability in your |
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.
general feedback: the more links the better! (if they point to stable URLs, anyway)
don't expect the reader to know these terms (they might be managers or come from an otherwise vastly different background) and might not even realise that this is meaning something specific and that they could/should look it up
- Use semantic versioning to maintain consistency and predictability in your | |
- Use [semantic versioning](https://semver.org/) to maintain consistency and predictability in your |
This is not required by embassy, and vendors typically prefer to keep their codebases in their own org/repo so they can control access to them, there's no doubts about ownership, etc. Also: maybe ask dirbaio before you start suggesting that everyone shove their code in his project's repo? |
sorry, this wasn't meant as a "hey, everyone should be doing this!" and more as a "is it the idea that this could/should be done?". sorry if that didn't come across like that CC @Dirbaio |
No description provided.