FreeRTOS-Kernel/portable
magicse7en b9748e50ea
Xtensa: fix stack overlap coproc_area issue (#118)
In function pxPortInitialiseStack of port.c:
	sp = ( StackType_t * ) ( ( ( UBaseType_t ) ( pxTopOfStack + 1 )  - XT_CP_SIZE - XT_STK_FRMSZ ) & ~0xf );
We assume XT_CP_SIZE is 0xE4, XT_STK_FRMSZ is 0xA0, pxTopOfStack is 0xA0000000, sp is 0x9FFFFE80.
From port.c, we know the frame->a1 as below:
	frame->a1 = ( UBaseType_t ) sp + XT_STK_FRMSZ;  /* physical top of stack frame    */
So frame->a1 is 0x9FFFFF20. Therefore the interrupt stack frame range is 0x9FFFFE80 ~ 0x9FFFFF20.

The coproc_area is: p = ( uint32_t * ) ( ( ( uint32_t ) pxTopOfStack - XT_CP_SIZE ) & ~0xf );
So its value is 0x9FFFFF10. Obviously, the interrupt stack frame overlaps the coproc_area.

Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
2020-10-26 11:07:32 -07:00
..
ARMClang Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
ARMv8M Update History.txt and fix versioning in asm files (#177) 2020-09-18 08:05:13 -07:00
BCC/16BitDOS Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
CCS Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
CodeWarrior Update History.txt and fix versioning in asm files (#177) 2020-09-18 08:05:13 -07:00
Common Recently vTaskDelayUntil() was updated to xTaskDelayUntil() because the function now returns a value. The PR didn't make the same change in the MPU port, or update the constants required to include the xTaskDelayUntil() function in the build. (#199) 2020-10-11 14:04:49 -07:00
GCC Maintenance: Add readme.txt in each Renesas RX folder to show recommended port (#152) 2020-09-28 00:09:49 -07:00
IAR Maintenance: Add readme.txt in each Renesas RX folder to show recommended port (#152) 2020-09-28 00:09:49 -07:00
Keil Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
MemMang Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
MikroC/ARM_CM4F Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
MPLAB Fix Stack alignment for Microchip PIC32MX port (#182) 2020-09-28 00:16:18 -07:00
MSVC-MingW Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
oWatcom/16BitDOS Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
Paradigm/Tern_EE Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
Renesas Maintenance: Add readme.txt in each Renesas RX folder to show recommended port (#152) 2020-09-28 00:09:49 -07:00
Rowley Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
RVDS Update History.txt and fix versioning in asm files (#177) 2020-09-18 08:05:13 -07:00
SDCC/Cygnal Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
Softune Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
Tasking/ARM_CM4F Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
ThirdParty Xtensa: fix stack overlap coproc_area issue (#118) 2020-10-26 11:07:32 -07:00
WizC/PIC18 Update version number to 10.4.1 (#173) 2020-09-17 15:25:15 -07:00
readme.txt Style: Change FreeRTOS websites in comments (#131) 2020-08-20 14:59:28 -07: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 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.