Skip to content

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mbrossard
Copy link

No description provided.

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

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?

Comment on lines +121 to +122
offers logging capabilities for embedded systems, the Embedded Rust ecosystem
has developed numerous tools. `probe-rs` supports a wide range of target

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.

Copy link

@rursprung rursprung left a 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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

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`

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.

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."

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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

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

Suggested change
- Use semantic versioning to maintain consistency and predictability in your
- Use [semantic versioning](https://semver.org/) to maintain consistency and predictability in your

@9names
Copy link

9names commented Jun 17, 2025

vendors could opt to implement their PACs & HALs directly in embassy rather than having them separate?

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?

@rursprung
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants