mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-05-21 20:49:03 -04:00
When Link Time Optimization (LTO) is enabled, some of the LDR instructions result in out of range access. The reason is that the default generated literal pool is too far and not within the permissible range of 4K. This commit adds LTORG assembly instructions at required places to ensure that access to literals remain in the permissible range of 4K. Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> |
||
---|---|---|
.. | ||
r0p1 | ||
ReadMe.txt |
There are two options for running FreeRTOS on ARM Cortex-M7 microcontrollers. The best option depends on the revision of the ARM Cortex-M7 core in use. The revision is specified by an 'r' number, and a 'p' number, so will look something like 'r0p1'. Check the documentation for the microcontroller in use to find the revision of the Cortex-M7 core used in that microcontroller. If in doubt, use the FreeRTOS port provided specifically for r0p1 revisions, as that can be used with all core revisions. The first option is to use the ARM Cortex-M4F port, and the second option is to use the Cortex-M7 r0p1 port - the latter containing a minor errata workaround. If the revision of the ARM Cortex-M7 core is not r0p1 then either option can be used, but it is recommended to use the FreeRTOS ARM Cortex-M4F port located in the /FreeRTOS/Source/portable/GCC/ARM_CM4F directory. If the revision of the ARM Cortex-M7 core is r0p1 then use the FreeRTOS ARM Cortex-M7 r0p1 port located in the /FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 directory.