mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-02 10:24:11 +01:00
7598e898fa
- use IRQStack for ISRs (at begening of SRAM) (let's call it the irq stack) - use end of heap for stack needed during initialization (let's call it the init stack). - the systemStats in GCS indicate the remaining bytes in the IRQ stack (this is realy usefull to monitor our (nested) IRQs. This is the base ground to provide as much memory as possible available at task creation time. Next step is to re-organize the initialization in order to move all the init out of the thread's stacks onto the init stack. This will provide as much memory as possible available at task creation time. Basically the stack during initialization will be destroyed once the scheduler starts and dynamic alloc are made (since the init stack is at the end of the heap). We will need to make sure we don't clobber the heap during initialization otherwise this will lead to stack corruption. |
||
---|---|---|
.. | ||
include | ||
portable | ||
croutine.c | ||
list.c | ||
queue.c | ||
readme.txt | ||
tasks.c | ||
timers.c |
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 directory contains the three files that are common to every port - list.c, queue.c and tasks.c. The kernel is contained within these three files. croutine.c implements the optional co-routine functionality - which is normally only used on very memory limited systems. + The FreeRTOS/Source/Portable directory contains the files that are specific to a particular microcontroller and or compiler. + The FreeRTOS/Source/include directory contains the real time kernel header files. See the readme file in the FreeRTOS/Source/Portable directory for more information.