This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Btld located in Bank0 and Application in Bank1.
Switch from btld to application works properly, but when going into application "create_rtos_tasks" -> "MPU_xTaskCreate" ->
BaseType_t prvRaisePrivilege( void )
{
register BaseType_t return_value asm("r0");
asm( " swi 1 " );
return return_value;
}
it jumps to 0x00000008 which is bltd's location and not application's.
In HL_sys_link.ld application it is setup:
"
VECTORS(rx) : ORIGIN = 0x00200100, LENGTH = 0x00000020
KERNEL (rx) : ORIGIN = 0x00200120, LENGTH = 0x00008000
FLASH (rx) : ORIGIN = 0x00208120, LENGTH = (0x001F7EE0 + 0x00200000)
....
"
Just to mention that application without FreeRTOS works properly (using vimInit on start)
Found this but without answer:
Hello Ilija,
The device supports only one exception vector table which is located at the beginning of the flash (0x00000000). When one SVC exception occurs in your application, the code branches to 0x08 in the exception table in 0x0000000.
If the bootloader doesn't use svc handler, you can change the SVC branch address in bootloader sys_intvecs.asm to your application:
Bootloader sys_intvecs.asm:
resetEntry
b _c_int00
undefEntry
b undefEntry
b 0x2000F8 ;0x200100-0x8 for svc
Application sys_intvecs.asm:
resetEntry
b _c_int00
undefEntry
b undefEntry
b vPortSWI