This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
FreeRTOS-Kernel/portable
Gaurav-Aggarwal-AWS b6a43866da
Add support for privileged heap to ARMV8-M ports (#85)
If xTaskCreate API is used to create a task, the task's stack is
allocated on heap using pvPortMalloc. This places the task's stack
in the privileged data section, if the heap is placed in the
privileged data section.

We use a separate MPU region to grant a task access to its stack.
If the task's stack is in the privileged data section, this results in
overlapping MPU regions as privileged data section is already protected
using a separate MPU region. ARMv8-M does not allow overlapping MPU
regions and this results in a fault. This commit ensures to not use a
separate MPU region for the task's stack if it lies within the
privileged data section.

Note that if the heap memory is placed in the privileged data section,
the xTaskCreate API cannot be used to create an unprivileged task as
the task's stack will be in the privileged data section and the task
won't have access to it. xTaskCreateRestricted and
xTaskCreateRestrictedStatic API should be used to create unprivileged
tasks.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2020-07-14 16:22:14 -07:00
..
ARMClang Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
ARMv8M Add support for privileged heap to ARMV8-M ports (#85) 2020-07-14 16:22:14 -07:00
BCC/16BitDOS Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
CCS Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
CodeWarrior Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Common Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
GCC Add support for privileged heap to ARMV8-M ports (#85) 2020-07-14 16:22:14 -07:00
IAR Add support for privileged heap to ARMV8-M ports (#85) 2020-07-14 16:22:14 -07:00
Keil Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
MemMang Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
MikroC/ARM_CM4F Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
MPLAB Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
MSVC-MingW Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
oWatcom/16BitDOS Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Paradigm/Tern_EE Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Renesas Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Rowley Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
RVDS Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
SDCC/Cygnal Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Softune Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
Tasking/ARM_CM4F Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
ThirdParty Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
WizC/PIC18 Style: uncrustify kernel files 2020-07-08 10:24:06 -07:00
readme.txt Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00

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 http://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.