Skip to content

Support region padding for MPU programming (requires #127)#146

Open
thejpster wants to merge 6 commits intorust-embedded:mainfrom
thejpster:support-padding
Open

Support region padding for MPU programming (requires #127)#146
thejpster wants to merge 6 commits intorust-embedded:mainfrom
thejpster:support-padding

Conversation

@thejpster
Copy link
Contributor

@thejpster thejpster commented Mar 6, 2026

Make it easier to set up the MPU

  • Add an API to get the various linker output sections (aarch32_rt::region)
  • Adjust link.x to allow for adjustable alignment of regions
  • Adjust link.x to allow for adjustable padding between stacks
  • Add an example that programs the MPU

The MPS3-AN536 padding is set at 64K, so that the normal build and the +d32 build end up with the same memory map (otherwise their output for the mpu_region example would be different).

Includes #127

Will make it easier to add other tests, like sharing the GIC across
cores.
We send a Software Generated Interrupt from Core 0 to Core 1, and then
another one back the other way.
* The `_num_cores` symbol controls how many copies of each stack you get
* Added better docs to link.x
* Added `enum Stack` to aarch32-rt, which can fetch information about
  each stack
* Simplified the SMP start-up code
* Stacks and stack related code are now all in the same order

If you want to put stacks into TCM, you'll need custom routines. This
code assumes stacks all live in the same region of RAM.
The parser thought the hyphen started a bullet list.
* Add an API to get the various linker output sections (aarch32_rt::region)
* Adjust link.x to allow for adjustable alignment of regions
* Adjust link.x to allow for adjustable padding between stacks
* Add an example that programs the MPU
@thejpster thejpster changed the title Support region padding for MPU programming Support region padding for MPU programming (requires #127) Mar 6, 2026
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.

1 participant