Skip to content

Comments

Add MMU to Armv7-A examples#120

Merged
jonathanpallant merged 7 commits intorust-embedded:mainfrom
thejpster:add-mmu-to-v7a-examples
Feb 20, 2026
Merged

Add MMU to Armv7-A examples#120
jonathanpallant merged 7 commits intorust-embedded:mainfrom
thejpster:add-mmu-to-v7a-examples

Conversation

@thejpster
Copy link
Contributor

Adds MMU support to the versatileab examples run with the armv7a-none-eabi* and thumbv7a-none-eabi* targets.

This means the examples now work when those targets are modified to remove the +strict-align feature. This is because enabling the MMU stops RAM being strongly-ordered, and unaligned-loads on strongly-ordered memory is UNDEFINED by the architecture. So basically, running Armv7-A without the MMU enabled is bad, and now we show how to enable the MMU.

Also meant adding support for the DACR and TTBR0 registers.

@thejpster thejpster force-pushed the add-mmu-to-v7a-examples branch 3 times, most recently from afbe32b to 2ea8d08 Compare February 15, 2026 15:53
@thejpster
Copy link
Contributor Author

rebased on main

Enabling the MMU means the processor can execute unaligned loads. Without
an MMU all memory is strongly-ordered, for which unaligned loads are
UNDEFINED.

Does not apply to non-VMSA targets like Armv7-R.
@thejpster thejpster force-pushed the add-mmu-to-v7a-examples branch from aab5e6c to 9cfba84 Compare February 19, 2026 19:34
@jonathanpallant jonathanpallant added this pull request to the merge queue Feb 20, 2026
Merged via the queue into rust-embedded:main with commit 989190f Feb 20, 2026
50 checks passed
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.

3 participants