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.

Concerto m3 switch between two applications in flash

Dear support,

We work with concerto F28m35Hc1, have two application on the flash (loader [0x204000]-[0x22000]) and M3Application [0x240000]-[0x27c000]). Both applications  based on mcusdk 1.0.0.68, XDCTools 3.23.4.60 , We can not switch between applications.

Loader cmd:
MEMORY
{
    BOOTROM (RX)    : origin = 0x0,        length = 0x10000
    FLASH_BOOT (RWX) : origin = 0x200030,   length = 0x4
    INTVECS (RWX)    : origin = 0x200034,   length = 0x1000
    STARTCODE (RX)   : origin = 0x204000, length = 0x0008
    FLASH (RWX)      : origin = 0x204034,   length = 0x18fcc
...}
SECTIONS
{
    .startcode: >> STARTCODE
   
.intvecs:   >  INTVECS
...}

M3Application.cmd:
MEMORY
{
    BOOTROM (RX)    : origin = 0x0,        length = 0x10000
    FLASH_BOOT (RWX): origin = 0x200030,   length = 0x4
    INTVECS (RWX)   : origin = 0x200034,   length = 0x1000
    STARTCODE (RX)  : origin = 0x230000, length = 0x0008

    FLASH (RWX)     : origin = 0x230034,   length = 0x20000 
...}
SECTIONS
{
    .startcode: >> STARTCODE
   
.intvecs:   >  INTVECS
...}
 

and jump we do from loader by the following way:

#pragma CODE_SECTION(".startcode")
void ResetISR(void)
{
  // Jump to the CCS C Initialization Routine.
  __asm("    .global _c_int00\n"
        "    b.w     _c_int00");
}
static void JumpStackPointerToAddress(Uint32 address)
{
__asm(" mov sp, r0\n"   // sp is now *address
      " bx r0\n" );     // jump to *address
}
static void StartM3Application(void)
{
  IntMasterDisable(); // disable interrupts
  HWREG(NVIC_VTABLE) = 0x230000; // redirect the vector table
  JumpStackPointerToAddress(0x230001); // jump to startup code of application
}

but it doesn't work.

Could you help us with it? where is the problem?

Thanks,Sabina

 

  • Dear support,

    pls help us with above problem.

    With linker file M3Application.cmd :
    MEMORY
    {
        FLASH_BOOT (RWX): origin = 0x230030,   length = 0x4
        INTVECS (RWX)   : origin = 0x200034,   length = 0x1000 
        STARTCODE (RX)  : origin = 0x231034,   length = 0x0008
        ...}  build finish sucessfully.

    But if i change INTVECS address to :
     INTVECS (RWX)   : origin = 0x230034,   length = 0x1000

    gert the errors:
    "./configPkg/linker.cmd", line 199: warning #10096-D: specified address lies

       outside memory map
    error #10264: DEFAULT memory range overlaps existing memory range CSM_ECSL_Z1
    error #10264: DEFAULT memory range overlaps existing memory range CSM_RSVD_Z1
    error #10264: DEFAULT memory range overlaps existing memory range FLASH_BOOT
    error #10264: DEFAULT memory range overlaps existing memory range INTVECS
    error #10264: DEFAULT memory range overlaps existing memory range STARTCODE
    error #10264: DEFAULT memory range overlaps existing memory range CSM_RSVD_Z2
    error #10264: DEFAULT memory range overlaps existing memory range CSM_ECSL_Z2
    error #10264: DEFAULT memory range overlaps existing memory range FLASH
    error #10264: DEFAULT memory range overlaps existing memory range C03SRAM
    error #10264: DEFAULT memory range overlaps existing memory range S00SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range S01SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range S02SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range S03SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range S04SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range S07SHRAM
    error #10264: DEFAULT memory range overlaps existing memory range CTOMMSGRAM
    >> Compilation failure
    error #10264: DEFAULT memory range overlaps existing memory range MTOCMSGRAM
    error #10010: errors encountered during linking; "L-Full_M3-1.out" not built
    gmake: *** [L-Full_M3-1.out] Error 1
    gmake: Target `all' not remade because of errors."

    I don't get this problem with M3-blink example without sys/bios. In the application without sys/bios I set another address to INTVECS and program build without errors.

    In "http://e2e.ti.com/support/embedded/bios/f/355/t/213249.aspx" forum you sent "http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/355/7140.test.zip example.

    In this example i get the same errors after change :

       CSM_ECSL_Z1     : origin = 0x00210000, length = 0x0024
        CSM_RSVD_Z1     : origin = 0x00210024, length = 0x000C
        RESETISR (RX)   : origin = 0x00200030, length = 0x0008   /* Reset ISR is mapped to boot to Flash location */
        FLASH_BOOT (RWX): origin = 0x00200038, length = 0x4
        FLASHLOAD (RX)  : origin = 0x0020003C, length = 0x2E00   /* For storing code in Flash to copy to RAM at runtime */
        FLASH (RWX)     : origin = 0x00212E3C, length = 0x6CF14
        INTVECS (RX)    : origin = 0x0027FD50, length = 0x01B0
        CSM_RSVD_Z2     : origin = 0x0027FF00, length = 0x00DC
        CSM_ECSL_Z2     : origin = 0x0027FFDC, length = 0x0024
        C03SRAM (RWX)   : origin = 0x20000000, length = 0x2000
        C1 (RWX)        : origin = 0x20002000, length = 0x2000
        BOOT_RSVD (RX)  : origin = 0x20004000, length = 0x0900
        C2 (RWX)        : origin = 0x20004900, length = 0x1700
        C3 (RWX)        : origin = 0x20006000, length = 0x2000
        CTOMRAM (RX)    : origin = 0x2007F000, length = 0x0800
        MTOCRAM (RWX)   : origin = 0x2007F800, length = 0x0800
        RAMS0           : origin = 0x20008000, length = 0x2000
        RAMS1           : origin = 0x2000A000, length = 0x2000
        CM_MC_IPC       : origin = 0x400FB700, length = 0x0040     /* C28 Control to Master IPC registers */

    to:
    RESETISR (RX)   : origin = 0x00210030, length = 0x0008   /* Reset ISR is mapped to boot to Flash location */
    FLASH_BOOT (RWX): origin = 0x00210038, length = 0x4
    FLASHLOAD (RX)  : origin = 0x0021003C, length = 0x2E00   /* For storing code in Flash to copy to RAM at runtime */

    errors:

    ./main.obj" -l"rtsv7M3_T_le_eabi.lib" "../F28M35x_generic_M3_FLASH_mod.cmd"
    <Linking>
    "./configPkg/linker.cmd", line 139: warning #10096-D: specified address lies
       outside memory map
    error #10264: DEFAULT memory range overlaps existing memory range CSM_ECSL_Z1
    error #10264: DEFAULT memory range overlaps existing memory range CSM_RSVD_Z1
    error #10264: DEFAULT memory range overlaps existing memory range RESETISR
    error #10264: DEFAULT memory range overlaps existing memory range FLASH_BOOT
    error #10264: DEFAULT memory range overlaps existing memory range FLASHLOAD
    error #10264: DEFAULT memory range overlaps existing memory range FLASH
    error #10264: DEFAULT memory range overlaps existing memory range INTVECS
    error #10264: DEFAULT memory range overlaps existing memory range CSM_RSVD_Z2
    >> Compilation failure
    error #10264: DEFAULT memory range overlaps existing memory range CSM_ECSL_Z2
    error #10264: DEFAULT memory range overlaps existing memory range C03SRAM
    error #10264: DEFAULT memory range overlaps existing memory range C1
    error #10264: DEFAULT memory range overlaps existing memory range BOOT_RSVD
    error #10264: DEFAULT memory range overlaps existing memory range C2
    error #10264: DEFAULT memory range overlaps existing memory range C3
    error #10264: DEFAULT memory range overlaps existing memory range RAMS0
    error #10264: DEFAULT memory range overlaps existing memory range RAMS1
    error #10264: DEFAULT memory range overlaps existing memory range CTOMRAM
    error #10264: DEFAULT memory range overlaps existing memory range MTOCRAM
    error #10264: DEFAULT memory range overlaps existing memory range CM_MC_IPC
    error #10010: errors encountered during linking; "test.out" not built
    gmake: *** [test.out] Error 1
    gmake: Target `all' not remade because of errors.

    Does exist any known conflict  with sys/bios using and change resetisr address.

    pls help us to resilve this problem.

    Thanks,Sabina

  • Dear support,

    Could you please advice on the above problem. Does it is a really problem or we miss somthing in cmd file?

    Thanks,Sabina