mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 13:01:57 -04:00
armv8.1-m: Add task dedicated PAC key To harden the security, each task is assigned a dedicated PAC key, so that attackers needs to guess the all the tasks' PAC keys right to exploit the system using Return Oriented Programming. The kernel is now updated to support the following: * A PAC key set with a random number generated and is saved in the task's context when a task is created. * As part of scheduling, the task's PAC key is stored/restored to/from the task's context when a task is unscheduled/scheduled from/to run. stack-overflow-check: Introduce portGET_CURRENT_TOP_OF_STACK macro When MPU wrapper v2 is used, the task's context is stored in TCB and `pxTopOfStack`` member of TCB points to the context location in TCB. We, therefore, need to read PSP to find the task's current top of stack. Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com> |
||
---|---|---|
.. | ||
ARMClang | ||
ARMv8M | ||
BCC/16BitDOS | ||
CCRH/F1Kx | ||
CCS | ||
CodeWarrior | ||
Common | ||
GCC | ||
IAR | ||
Keil | ||
MemMang | ||
MikroC/ARM_CM4F | ||
MPLAB | ||
MSVC-MingW | ||
oWatcom/16BitDOS | ||
Paradigm/Tern_EE | ||
Renesas | ||
Rowley | ||
RVDS | ||
SDCC/Cygnal | ||
Softune | ||
Tasking/ARM_CM4F | ||
template | ||
ThirdParty | ||
WizC/PIC18 | ||
CMakeLists.txt | ||
readme.txt |
Each real time kernel port consists of three files that contain the core kernel components and are common to every port, and one or more files that are specific to a particular microcontroller and/or compiler. + The FreeRTOS/Source/Portable/MemMang directory contains the five sample memory allocators as described on the https://www.FreeRTOS.org WEB site. + The other directories each contain files specific to a particular microcontroller or compiler, where the directory name denotes the compiler specific files the directory contains. For example, if you are interested in the [compiler] port for the [architecture] microcontroller, then the port specific files are contained in FreeRTOS/Source/Portable/[compiler]/[architecture] directory. If this is the only port you are interested in then all the other directories can be ignored.