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.

TMS570LC4357: Bootloader - Appication -> application with FreeRTOS fails on task creation

Part Number: TMS570LC4357

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:

e2e.ti.com/.../785778

  • 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

     

     

  • Thank you QJ Wang,

    this resoved my problem :)

    With kind regards,

    Ilija Kostic