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 */ }