mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-03 11:24:10 +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. |
||
---|---|---|
.. | ||
GCC/ARM_CM3 | ||
MemMang | ||
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 three 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. For example, if you are interested in the GCC port for the ATMega323 microcontroller then the port specific files are contained in FreeRTOS/Source/Portable/GCC/ATMega323 directory. If this is the only port you are interested in then all the other directories can be ignored.