Skip to content

add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum #72

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

Merged
merged 2 commits into from
Jan 11, 2018

Conversation

japaric
Copy link
Member

@japaric japaric commented Dec 23, 2017

see japaric/cortex-m-rtfm#53 for background information

@japaric
Copy link
Member Author

japaric commented Jan 11, 2018

@homunkulus r+

@homunkulus
Copy link
Contributor

📌 Commit 4cd62a9 has been approved by japaric

@homunkulus
Copy link
Contributor

⌛ Testing commit 4cd62a9 with merge 6d01f2b...

japaric pushed a commit that referenced this pull request Jan 11, 2018
add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum

see japaric/cortex-m-rtfm#53 for background information
@homunkulus
Copy link
Contributor

💔 Test failed - status-travis

@japaric
Copy link
Member Author

japaric commented Jan 11, 2018

@homunkulus r+

@homunkulus
Copy link
Contributor

📌 Commit f6ee6d0 has been approved by japaric

@homunkulus
Copy link
Contributor

⌛ Testing commit f6ee6d0 with merge 34f6621...

japaric pushed a commit that referenced this pull request Jan 11, 2018
add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum

see japaric/cortex-m-rtfm#53 for background information
@homunkulus
Copy link
Contributor

☀️ Test successful - status-travis
Approved by: japaric
Pushing 34f6621 to master...

@homunkulus homunkulus merged commit f6ee6d0 into master Jan 11, 2018
@japaric japaric deleted the cm7-r0p1 branch January 11, 2018 14:55
japaric pushed a commit to rtic-rs/rtic that referenced this pull request Jan 11, 2018
add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum

closes #53
alternative solution to #54
depends on rust-embedded/cortex-m#72
japaric pushed a commit to rtic-rs/rtic that referenced this pull request Jan 11, 2018
add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum

closes #53
alternative solution to #54
depends on rust-embedded/cortex-m#72
adamgreig pushed a commit that referenced this pull request Jan 12, 2022
`exception!(HardFault, ..)` and `exception!(*, ..)` can now be omitted from
programs to pick up the default behavior of an infinite loop. Existing programs
that define these exception handlers will continue to work w/o any functional
change.

closes #72
adamgreig pushed a commit that referenced this pull request Jan 12, 2022
85: [WIP] provide defaults for DefaultHandler and HardFault r=korken89 a=japaric

`exception!(HardFault, ..)` and `exception!(*, ..)` can now be omitted from
programs to pick up the default behavior of an infinite loop. Existing programs
that define these exception handlers will continue to work w/o any functional
change.

closes #72

--

Annoyances:

- The handlers can't be *just* an infinite loop because of rust-lang/rust#28728.
If we define the handlers as just `loop {}` they will become an abort (UDF)
instruction. And that would turn HardFault into infinite recursion. For that
reason I have made them into an infinite loop that does some side effect

- If you stick to the defaults then the symbol name of the default handler
changes from `DefaultHandler` (override) to `DefaultDefaultHandler` (default).
We can make these two names more similar but I think we can not prevent the
rename. Something similar happens with UserHardFault (which becomes
DefaultUserHardFault when not overridden).

cc @rust-embedded/cortex-m

Co-authored-by: Jorge Aparicio <[email protected]>
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.

2 participants