Skip to content
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

guidelines for register blocks, registers, structs... #743

Open
orangecms opened this issue May 6, 2024 · 1 comment
Open

guidelines for register blocks, registers, structs... #743

orangecms opened this issue May 6, 2024 · 1 comment

Comments

@orangecms
Copy link
Contributor

There are lots of crates for handling various kinds of binary structures:

In addition, Kaitai has partial Rust support.

We often need to parse/write vendor specific payload headers (xtask/), access special access registers (RISC-V CSRs, Intel MSRs), or deal with peripheral blocks. The latter is covered by Rust Embedded HAL/PAC semantics. That code is not as modular though, while in reality, different SoCs often share the same peripherals from the same supplier (Cadence Denali and Synopsis Designware) and/or the same or related cores (T-Head and SiFive on RISC-V, Arm based ones, etc).

We should provide guidelines and a way to go to keep our code consistent.
This if anything is the central point of a firmware monorepo, making up a framework.

@orangecms
Copy link
Contributor Author

  • deku crate 👀
  • device-driver crate; has smth like bit fields, but wait, there is more; author says it's fancy
  • bitvec crate

should we bother the Rust compiler team? :)

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

No branches or pull requests

1 participant