Skip to content

Conversation

@FoniksFox
Copy link
Contributor

@FoniksFox FoniksFox commented Dec 13, 2025

Refactor of the MPU so that it works with the new compile-infrastructure.

You can inscribe any type, on any memory domain, with any alignment (up to 32B, since there's no meaning in going any further) cacheable or non-cacheable. The MPU module will calculate and allocate on compile-time all the memory required with the required offsets and everything, such that it even fails if you request too much memory (well, the linker script is the one that actually fails).

It still gives support to the legacy MPUManager.

It has a greater range of protection of the memory, so that you cannot access any memory that is not explicitly defined as accessible.

It dinamycally (in compile-time) allocates the necessary memory with the minimum padding possible so as to not waste any unnecessary memory.

The linker script has been changed to adapt to this new structure.

You need to delete the MPUManager::start() call from Runes to maki this work (since this function no longer exists).

jorgesg82 and others added 25 commits November 30, 2025 13:57

This comment was marked as spam.

@FoniksFox FoniksFox changed the base branch from compile-infrastructure to development December 15, 2025 22:09
@FoniksFox FoniksFox marked this pull request as ready for review December 25, 2025 19:35
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