arch: Cortex-M: Set MPU address per arch #4427
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Overview
It seems that newer Cortex-M variants (eg Cortex-M33) support the same MPU but at a different (not secure) address. This generalizes setting the address to per-arch, so that each cortex-m arch can choose the appropriate register start address.
This is inspired by #4416 because I think we want to avoid having a
StaticRef
to registers that don't actually exist at that address.Testing Strategy
travis
TODO or Help Wanted
The tradeoff is we now have the unsafe StaticRef definition in several places rather than one, but I think that is still worth it. I added a
new()
function to each arch'smpu
module so that choosing the register is up to the arch and not the chip. Let me know if you see a better way to do this.Documentation Updated
/docs
, or no updates are required.Formatting
make prepush
.