-
Notifications
You must be signed in to change notification settings - Fork 168
cortex-m-pac
crate: standard traits and result handling for Cortex-M targets
#560
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
Implementing |
CI failed because the ubuntu-latest label migrated to ubuntu 24.04 (https://github.blog/changelog/2024-09-25-actions-new-images-and-ubuntu-latest-changes/), and it looks like there the qemu package is no longer available. A quick fix would be to change the runner image to Alternatively, CI could use |
That was easier than I had expected: #562 |
Rebased and added |
/// * `MAX_EXCEPTION_NUMBER` must coincide with the highest allowed exception number. | ||
pub unsafe trait ExceptionNumber: Copy { | ||
/// Highest number assigned to an exception. | ||
const MAX_EXCEPTION_NUMBER: usize; |
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.
It seems strange to define MAX_EXCEPTION_NUMBER on each instance of ExceptionNumber.
Sorry, I misunderstood the purpose. There should only be one enum implementing this trait, right?
CC @adamgreig Since this is replacing a previous PR from you. |
This PR ports some of the ongoing work in the RISC-V ecosystem to Cortex-M targets. Namely, I adapted the
riscv-pac
crate to the newcortex-m-pac
crate.The main purpose of this crate is to isolate fundamental traits and data types from potential breaking changes in
cortex-m
. Namely, it currently contains traits for enumerating exceptions, interrupts, priorities, and core IDs. It also provides a basic fallible function support for Cortex-M devices, with an error enum with some of the most typical issues developers may face.Related PRs in RISC-V: #222 and #223
Related PRs in Cortex-M: #488
Once this is merged, I plan to continue porting new functionalities from RISC-V to Cortex-M (e.g., new syntax for interrupt and exception macros)