Tool/software: TI-RTOS
I am using the standart SafetyMCU_enet_bootloader from TI. When i flash a non Freertos Application, it works everything. With a FreeRTOS application it doesn't work.
I found forums with similary problems :
According to the forums, i have to adjust the intvect.asm file. i did not make it right and i don't know how to.
Here is my bootloader linker settings:
/* Linker Settings */
--retain="*(.intvecs)"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Memory Map */
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
FLASH_API (RX) : origin=0x00000020 length=0x000014E0
FLASHBOOT (RX) : origin=0x00001500 length=0x0007EB00
STACKS (RW) : origin=0x08000000 length=0x00002000
RAM (RW) : origin=0x08002000 length=0x0003E000
/* USER CODE BEGIN (2) */
/* USER CODE END */
}
/* USER CODE BEGIN (3) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Section Configuration */
SECTIONS
{
.intvecs : {} > VECTORS
flashAPI :
{
..\Debug\app\source\Fapi_UserDefinedFunctions.obj (.text)
..\Debug\app\source\bl_flash.obj (.text)
--library= ..\LIB\F021_API_CortexR4_LE.lib (.text)
} load = FLASH_API, run = RAM, LOAD_START(api_load), RUN_START(api_run), SIZE(api_size)
.text : {} > FLASHBOOT
.const : {} > FLASHBOOT
.cinit : {} > FLASHBOOT
.pinit : {} > FLASHBOOT
.bss : {} > RAM
.data : {} > RAM
.sysmem : {} > RAM
Here is my application FreeRTOS linker settings:
/* Linker Settings */
--retain="*(.app_intvecs)"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Memory Map */
MEMORY
{
VECTORS (X) : origin=0x00020000 length=0x00000020
KERNEL (RX) : origin=0x00020020 length=0x00008000
FLASH0 (RX) : origin=0x00028020 length=0x00157FE0
FLASH1 (RX) : origin=0x00180000 length=0x00180000
STACKS (RW) : origin=0x08000000 length=0x00000800
KRAM (RW) : origin=0x08000800 length=0x00000800
RAM (RW) : origin=(0x08000800+0x00000800) length=(0x0003f800 - 0x00000800)
/* USER CODE BEGIN (2) */
SDRAM (RW) : origin=0x80000000 length=0x01000000
/* USER CODE END */
}
/* USER CODE BEGIN (3) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Section Configuration */
SECTIONS
{
.app_intvecs : {} > VECTORS
/* FreeRTOS Kernel in protected region of Flash */
.kernelTEXT : {} > KERNEL
.cinit : {} > KERNEL
.pinit : {} > KERNEL
/* Rest of code to user mode flash region */
.text : {} > FLASH0 | FLASH1
.const : {} > FLASH0 | FLASH1
/* FreeRTOS Kernel data in protected region of RAM */
.kernelBSS : {} > KRAM
.kernelHEAP : {} > RAM
.bss : {} > RAM
.data : {} > RAM
/* USER CODE BEGIN (4) */
.TI.noinit : {} > SDRAM
.TI.persistent: {} > SDRAM
.sdram : {} > SDRAM
/* USER CODE END */
}