Skip to content

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

Merged
homunkulus merged 2 commits intomasterfrom
cm7-r0p1
Jan 11, 2018
Merged

add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum#72
homunkulus merged 2 commits intomasterfrom
cm7-r0p1

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 <jorge@japaric.io>
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