This file lists the required modifications, if any, that need to be performed manually when using I-CUBE-embOS to create projects for different IDEs.

Further information on this and other topics can be found in the SEGGER embOS Wiki:
https://wiki.segger.com/embOS

IAR EWARM
=========
No manual modifications are required.

Keil MDK
========
- If the linker complains about the undefined symbol Stack_Mem, the Stack_Mem symbol needs to be exported by the start-up file (e.g. startup_stm32f407xx.s).
  Please add
        EXPORT  Stack_Mem
  to the start-up file.
  Alternatively, if another symbol pointing to the end of the stack (lowest address of the stack) is exported, OS_InitSysStackInfo.c can be modified to use this symbol instead of Stack_Mem.
- If the linker complains about the undefined symbol __initial_sp, the __initial_sp symbol needs to be exported by the start-up file (e.g. startup_stm32f407xx.s).
  Please add
        EXPORT  __initial_sp
  to the start-up file.
  Please note, that there might be conflicts with the stack/heap set up methods and ARM compiler V6 when __initial_sp is exported and MicroLIB is not used.
  In this case, and if the start-up file supports the use of MicroLIB, MicroLIB can be enabled instead of exporting __initial_sp (Options for Target -> Target -> Code Generation -> Use MicroLIB).
  Alternatively, if another symbol pointing to the beginning of the stack (highest address of the stack) is exported, OS_InitSysStackInfo.c can be modified to use this symbol instead of __initial_sp.

STM32CubeIDE
============
- If the linker complains about the undefined references to __stack_start__ and __stack_end__, these symbols need to be defined by the linker description file (e.g. STM32F407IGHX_FLASH.ld).
  Please replace
        . = . + _Min_Stack_Size;
  by
        __stack_start__ = .;
        . = . + _Min_Stack_Size;
        __stack_end__ = .;
  in the linker description file.
