TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F2800137: 如何從Bootloader跳轉到Application

Part Number:TMS320F2800137

您好

  每次reset後,都必須從自己設計的Bootloader跳轉到APP,那麼我要如何從Bootloader跳轉到APP,APP的cmd file又該如何正確修改(APP起始位置為0x0008C000),下列代碼是我修改過的,謝謝。

MEMORY
{BEGIN_APP: origin = 0x0008C000, length = 0x00000010BOOT_RSVD: origin = 0x00000002, length = 0x00000126RAMM0: origin = 0x00000128, length = 0x000002D8RAMM1: origin = 0x00000400, length = 0x000003F8// RAMM1_RSVD: origin = 0x000007F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */RAMLS0: origin = 0x00008000, length = 0x00002000RAMLS1: origin = 0x0000A000, length = 0x00001FF8// RAMLS1_RSVD: origin = 0x0000BFF8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */RESET: origin = 0x003FFFC0, length = 0x00000002/* Flash sectors */FLASH_BANK0_SEC_0_7: origin = 0x080002, length = 0x1FFE  /* on-chip Flash */FLASH_BANK0_SEC_8_15: origin = 0x082000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_16_23: origin = 0x084000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_24_31: origin = 0x086000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_32_29: origin = 0x088000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_40_47: origin = 0x08A000, length = 0x2000  /* on-chip Flash *///FLASH_BANK0_SEC_48_55: origin = 0x08C000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_48_55: origin = 0x08C010, length = 0x1FF0  /* on-chip Flash */FLASH_BANK0_SEC_56_63: origin = 0x08E000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_64_71: origin = 0x090000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_72_79: origin = 0x092000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_80_87: origin = 0x094000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_88_95: origin = 0x096000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_96_103  : origin = 0x098000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_104_111 : origin = 0x09A000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_112_119 : origin = 0x09C000, length = 0x2000  /* on-chip Flash */FLASH_BANK0_SEC_120_127 : origin = 0x09E000, length = 0x1FF0  /* on-chip Flash */// FLASH_BANK0_SEC_127_RSVD : origin = 0x0A0FF0, length = 0x0010  /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
}

SECTIONS
{codestart: > BEGIN_APP //BEGIN//.text: >> FLASH_BANK0_SEC_8_15 | FLASH_BANK0_SEC_16_23 | FLASH_BANK0_SEC_24_31, ALIGN(8)//.cinit: > FLASH_BANK0_SEC_0_7, ALIGN(8)//.switch: > FLASH_BANK0_SEC_0_7, ALIGN(8).text: >> FLASH_BANK0_SEC_56_63 | FLASH_BANK0_SEC_64_71 | FLASH_BANK0_SEC_72_79, ALIGN(8).cinit: > FLASH_BANK0_SEC_48_55, ALIGN(8).switch: > FLASH_BANK0_SEC_48_55, ALIGN(8).reset: > RESET,  TYPE = DSECT /* not used, */.stack: > RAMM1

#if defined(__TI_EABI__).bss: > RAMLS0.bss:output: > RAMLS0//.init_array: >> FLASH_BANK0_SEC_0_7, ALIGN(8)//.const: >> FLASH_BANK0_SEC_32_29, ALIGN(8).init_array: >> FLASH_BANK0_SEC_48_55, ALIGN(8).const: >> FLASH_BANK0_SEC_80_87, ALIGN(8).data: > RAMLS0.sysmem: > RAMLS0.bss:cio: > RAMLS0
#else//.pinit: >> FLASH_BANK0_SEC_0_7, ALIGN(8).pinit: >> FLASH_BANK0_SEC_48_55, ALIGN(8).ebss: > RAMLS0//.econst: >> FLASH_BANK0_SEC_32_29, ALIGN(8).econst: >> FLASH_BANK0_SEC_80_87, ALIGN(8).esysmem: > RAMLS0.cio: > RAMLS0
#endif

#if defined(__TI_EABI__)//.TI.ramfunc: LOAD = FLASH_BANK0_SEC_0_7,.TI.ramfunc: LOAD = FLASH_BANK0_SEC_48_55,RUN = RAMLS0,LOAD_START(RamfuncsLoadStart),LOAD_SIZE(RamfuncsLoadSize),LOAD_END(RamfuncsLoadEnd),RUN_START(RamfuncsRunStart),RUN_SIZE(RamfuncsRunSize),RUN_END(RamfuncsRunEnd),ALIGN(8)
#else//.TI.ramfunc: LOAD = FLASH_BANK0_SEC_0_7,.TI.ramfunc: LOAD = FLASH_BANK0_SEC_48_55,RUN = RAMLS0,LOAD_START(_RamfuncsLoadStart),LOAD_SIZE(_RamfuncsLoadSize),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),RUN_SIZE(_RamfuncsRunSize),RUN_END(_RamfuncsRunEnd),ALIGN(8)
#endif/*  Allocate IQ math areas: *///IQmath: > FLASH_BANK0_SEC_32_29, ALIGN(8)//IQmathTables: > FLASH_BANK0_SEC_32_29, ALIGN(8)IQmath: > FLASH_BANK0_SEC_80_87, ALIGN(8)IQmathTables: > FLASH_BANK0_SEC_80_87, ALIGN(8)
}

Yale Li:

Hi William Chen,

看一下这个帖子:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1100177/tms320f280039c-bootloader—how-to-jump-to-user-application

,

William Chen:

Hi Yale

    在bootloader的ExitFunction裡,是不是使用asm(" LB 0x0008C000");就可以跳至APP的位置,謝謝。

,

Yale Li:

Hi William Chen,

我还需要一些时间来查看,感谢您的耐心等候

,

Yale Li:

Hi William,

非常抱歉回复您晚了,确认过了,您可以使用这个语句将程序跳转到新的入口点。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F2800137: 如何從Bootloader跳轉到Application
分享到: 更多 (0)