mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-02-20 00:55:28 -05:00
Arm-Cortex-R82: Add MPU support (#1347)
* arm-cortex-r82: Add MPU support This commit introduces support for the Memory Protection Unit (MPU) to the ARM Cortex-R82 port. The MPU enhances system security by allowing the definition of memory regions with specific access permissions. The following changes have been made: - Added MPU configuration functions in `port.c` to set up memory regions and their attributes. - Updated `portASM.S` to include assembly routines for MPU and context switching with MPU support. - Created `mpu_wrappers_v2_asm.c` to provide assembly wrappers for MPU operations. - Updated `portmacro.h` to include MPU-related macros and definitions. - Modified `task.h` to include MPU-related task attributes. - Updated `CMakeLists.txt` to include the new MPU source file. - Enhanced the `README.md` with instructions on MPU configuration. Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com> * cortex-r82: Minor code improvements This commit includes minor code improvements to enhance readability and maintainability of the Cortex-R82 port files. Changes include refactoring variable names, optimizing comments, and improving code structure without altering functionality. Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com> * tasks: Disable stack-depth check if MPU wrappers is set This stack-depth check should not be performed for ports where portUSING_MPU_WRAPPERS is set to 1. In this case, pxTopOfStack and pxNewTCB->pxTopOfStack reside in different memory regions: pxTopOfStack is in unprivileged SRAM, while pxNewTCB->pxTopOfStack is in privileged SRAM. This is because pxPortInitialiseStack() returns the address of `ullContext` array rather than the decremented pxTopOfStack, as is done in the non-MPU case. Consequently, this check is not valid in this scenario. Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com> --------- Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com>
This commit is contained in:
parent
d33d04b14c
commit
6cd736cfeb
10 changed files with 3130 additions and 504 deletions
14
.github/.cSpellWords.txt
vendored
14
.github/.cSpellWords.txt
vendored
|
|
@ -70,6 +70,7 @@ CANTX
|
|||
capitalisation
|
||||
cbmc
|
||||
CBMC
|
||||
cbnz
|
||||
cbor
|
||||
CBOR
|
||||
CCIE
|
||||
|
|
@ -108,6 +109,8 @@ CLKS
|
|||
CLKSOURCE
|
||||
CLKSTA
|
||||
CLRB
|
||||
clrex
|
||||
CLREX
|
||||
CLRF
|
||||
clrm
|
||||
CLRPSW
|
||||
|
|
@ -379,6 +382,7 @@ IFSR
|
|||
imajeff
|
||||
INACK
|
||||
INDF
|
||||
initialisations
|
||||
inpw
|
||||
INTE
|
||||
INTFRCH
|
||||
|
|
@ -652,6 +656,8 @@ PPUDR
|
|||
PPUER
|
||||
PPUSR
|
||||
ppux
|
||||
Prbar
|
||||
PRBAR
|
||||
PRCR
|
||||
PREA
|
||||
PREB
|
||||
|
|
@ -659,11 +665,15 @@ PRIA
|
|||
Prioritised
|
||||
PRIS
|
||||
PRIVDEFENA
|
||||
Prlar
|
||||
PRLAR
|
||||
PROCDLY
|
||||
PRODH
|
||||
PRODL
|
||||
PROGE
|
||||
Prokic
|
||||
Prselr
|
||||
PRSELR
|
||||
prtmacro
|
||||
psha
|
||||
psplim
|
||||
|
|
@ -706,6 +716,7 @@ REENT
|
|||
REGA
|
||||
RELD
|
||||
Renesas
|
||||
restoreallgpregisters
|
||||
reta
|
||||
reti
|
||||
RETP
|
||||
|
|
@ -773,6 +784,8 @@ SCBR
|
|||
SCDR
|
||||
SCER
|
||||
SCSR
|
||||
Sctlr
|
||||
SCTLR
|
||||
SDCC
|
||||
SECU
|
||||
SENDA
|
||||
|
|
@ -930,6 +943,7 @@ UNSUB
|
|||
UNSUBACK
|
||||
unsubscriptions
|
||||
unsuspended
|
||||
unupdated
|
||||
UPAC
|
||||
URAD
|
||||
URAT
|
||||
|
|
|
|||
2
.github/scripts/kernel_checker.py
vendored
2
.github/scripts/kernel_checker.py
vendored
|
|
@ -119,6 +119,8 @@ KERNEL_ARM_COLLAB_FILES_PATTERNS = [
|
|||
r'.*portable/.*/ARM_CM4_MPU*',
|
||||
r'.*portable/.*/ARM_CM4F_MPU*',
|
||||
r'.*portable/.*/ARM_CR82*',
|
||||
r'.*include/task\.h$',
|
||||
r'.*tasks\.c$',
|
||||
]
|
||||
|
||||
KERNEL_HEADER = [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue