rust-embedded / rust-embedded/cortex-m

VECTACTIVE/VECTPENDING are 9 bits.

Open
#568 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1k
Forks
202
Avg merge
6d 2h
Merged PRs (30d)
2

Description

In addition to the issue described in #499, note that the ICSR VECTACTIVE/VECTPENDING bits, as well as the similarly-encoded exception bits in the xPSR, are nine bit fields, so a From<u8> impl is not appropriate.

Screenshot from ARMv7-M:
2024-11-25-135149_1455x287_scrot

ARMv6-M is restricted to 32 interrupts architecturally, so the result should be the same, though note that v6-M also defines these as nine bit fields. v7-M can have up to 496 interrupts so basically none of the current VectActive type is correct on that profile.

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 locating the current VectActive type and the ICSR VECTACTIVE/VECTPENDING and xPSR exception-field representations, then compare them with the ARMv6-M and ARMv7-M definitions described in the issue. Verify how values above eight bits are handled and check existing tests or validation for these fields; done means the affected types correctly represent the architecturally defined nine-bit fields on both profiles.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.