rust-embedded / rust-embedded/aarch32

Consider using arm-sysregs

Open
#216 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
66
Forks
25
Avg merge
4d 6h
Merged PRs (30d)
4

Description

arm-sysregs is a crate for reading/writing Arm system registers. It is automatically generated from a machine-readable description of the system registers, produced by Arm.

The aarch32-cpu crate currently supports some AArch32 registers, but certainly not all, and because it's been hand written, it may contain mistakes.

However, arm-sysregs currently does not have:

  • A closure based read/modify/write API
  • A useful core::fmt::Debug implementation, meaning the read values cannot be easily printed to the console (it prints raw hex)
  • A defmt::Format implementation, meaning the read values cannot be printed over defmt

It also uses bitflags! which means the API is heavily based on unions and sets of bitflags, which doesn't make sense for many of the registers.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing aarch32-cpu register support and the arm-sysregs crate documentation linked in the issue. Determine whether the missing closure-based read/modify/write, Debug, and defmt::Format APIs and the bitflags-based interface can meet this crate's needs; done requires a decided integration or rejection path.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.