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.

TMS320F28035: 28035 串口升级BIN文件后无法跳转

Part Number: TMS320F28035

28035 串口升级BIN文件后无法跳转。

使用二次BootLoader升级程序,通过串口升级应用程序,发现无法跳转到APP。使用仿真器烧录APP程序,则可以正常跳转。通过仿真对比烧录器烧录APP 和 串口升级烧录完成后的Memory Browser  APP地址数据,数据完全一致,可见SCI烧录正常的。重新上电依然无法调整

bootlaoder CMD 文件


-heap 0x400
MEMORY
{
PAGE 0:    /* Program Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
   RAM_BOOTPROG   : origin = 0x008000, length = 0x000020     /* on-chip RAM block L0, bootloader 中对时间敏感函数 */
   RAM_PROG       : origin = 0x008020, length = 0x000520     /* on-chip RAM block L0, bootloader 数据接收缓存区,1313byte,每次接收1Kb */
   RAM_CLAPRG     : origin = 0x009000, length = 0x001000     /* For CLA           */
   OTP            : origin = 0x3D7800, length = 0x000400     /* on-chip OTP       */
   Flash_EEPROM   : origin = 0x3E8000, length = 0x002000     /* Flash EEPROM 扇区H */
   APP_VER        : origin = 0x3EA000, length = 0x000010     /* 应用程序版本号  ,16Byte*/
   FLASH_APPPROG  : origin = 0x3EA010, length = 0x00A000     /* 应用程序存储空间,40Kb  */
   APP_START      : origin = 0x3F5FFC, length = 0x000002     /* 应用程序入口  2Byte */
   BOOT_VER       : origin = 0x3F6000, length = 0x000002     /* Bootloader 程序版本号  */
   FLASH_BOOTRAM  : origin = 0x3F6002, length = 0x000020      /* FLASH 操作函数存储空间 */
   FLASH_RTS      : origin = 0x3F6022, length = 0x00032E      /*  RTS库空间 */
   BOOT_UPDATE    : origin = 0x3F6350, length = 0x000002     /* bootloader 升级入口地址*/
   BOOT_RESET     : origin = 0x3F6352, length = 0x000002     /* bootloader 复位入口地址*/
   FLASH_BOOT     : origin = 0x3F6354, length = 0x001400     /* bootloader 程序存储空间 5kB */
   CSM_RSVD       : origin = 0x3F7F80, length = 0x000076     /* Bootloader :9/14 */
   BEGIN          : origin = 0x3F7FF6, length = 0x000002     /* Bootloader :10/14 */
   CSM_PWL_P0     : origin = 0x3F7FF8, length = 0x000008     /* Bootloader :11/14 */

   IQTABLES    : origin = 0x3FE000, length = 0x000B50     /* IQ Math Tables in Boot ROM */
   IQTABLES2   : origin = 0x3FEB50, length = 0x00008C     /* IQ Math Tables in Boot ROM */
   IQTABLES3   : origin = 0x3FEBDC, length = 0x0000AA	  /* IQ Math Tables in Boot ROM */

   ROM         : origin = 0x3FF27C, length = 0x000D44     /* Boot ROM */
   RESET       : origin = 0x3FFFC0, length = 0x000002     /* part of boot ROM  */
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E     /* part of boot ROM  */

PAGE 1 :   /* Data Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
           /* Registers remain on PAGE1                                                  */
   BOOT_RSVD      : origin = 0x000000, length = 0x000050     /* Part of M0, BOOT rom will use this for stack */
   RAMM0          : origin = 0x000050, length = 0x0003B0     /* on-chip RAM block M0 */
   RAMM1          : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   RAM_DATA       : origin = 0x008540, length = 0x000AC0     /* For .ebss */
   CLA2CPU        : origin = 0x001480, length = 0x000080     /* CLA1_MSGRAMLOW */
   CPU2CLA        : origin = 0x001500, length = 0x000080     /* CLA1_MSGRAMHIGH */
   FLASH_BOOTDATA : origin = 0x3F7754, length = 0x00082C     /* BootLoader数据空间 ,共计2.04Kb*/
   FLASH_APPDATA  : origin = 0x3F4010, length = 0x001FEC     /* 应用程序数据空间 ,共计7.98Kb*/
   APP_CHECK      : origin = 0x3F5FFE, length = 0x000001     /* 应用升级标志  */
   JTAG_FLAG      : origin = 0x3F5FFF, length = 0x000001     /* JTAG 仿真标志 */

}

/* Allocate sections to memory blocks.
   Note:
         codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
                   execution when booting to flash
         ramfuncs  user defined section to store functions that will be copied from Flash into RAM
*/

SECTIONS
{

   /* Bootloader :14/14 */
   codestart           : > BEGIN,              PAGE = 0
   UpdateEntry         : > BOOT_UPDATE,        PAGE = 0
   BootReset           : > BOOT_RESET,         PAGE = 0
   FlashBoot           : > FLASH_BOOT,         PAGE = 0

   RamBoot             : LOAD = FLASH_BOOTRAM,
                         RUN  = RAM_BOOTPROG,
                         LOAD_START(_RamBootLoadStart),
                         LOAD_END(_RamBootLoadEnd),
                         RUN_START(_RamBootRunStart),
                         PAGE = 0
/*
   Rts                 : LOAD = FLASH_RTS, PAGE = 0
   {
         -lrts2800_ml.lib <exit.obj _lock.obj> (.text)
         -lrts2800_ml.lib <exit.obj _lock.obj> (.cinit)
   }
*/

    BootVer           : > BOOT_VER,              PAGE = 0, ALIGN(4)
    AppStart          : > APP_START,             PAGE = 0, ALIGN(4)
    AppCheck          : > APP_CHECK,             PAGE = 1, ALIGN(4)
    JtagFlag          : > JTAG_FLAG,             PAGE = 1, ALIGN(4)
   /* Bootloader :14/14  End*/

   /* Application Version*/
    AppVer            : > APP_VER,              PAGE = 0, ALIGN(4)

  /* Allocate program areas: */
   //.cinit              : > FLASH_BOOTDATA  PAGE = 1, ALIGN(4)
   .cinit              : > FLASH_BOOT,     PAGE = 0, ALIGN(4)
   .pinit              : > FLASH_BOOT,     PAGE = 0, ALIGN(4)
   .text               : > FLASH_BOOT      PAGE = 0, ALIGN(4)

   ramfuncs            : LOAD = FLASH_BOOT,
                         RUN  = RAM_PROG,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

   csmpasswds          : > CSM_PWL_P0  PAGE = 0
   csm_rsvd            : > CSM_RSVD    PAGE = 0

   /* Allocate uninitalized data sections: */
   .stack              : >  RAMM1,          PAGE = 1, ALIGN(4)
   .cio                : >> RAMM0 | RAMM1,  PAGE = 1, ALIGN(4)
   .sysmem             : > RAMM0,           PAGE = 1, ALIGN(4)
   .ebss               : > RAM_DATA,        PAGE = 1, ALIGN(4)
   .esysmem            : > RAM_DATA,        PAGE = 1, ALIGN(4)

   /* Initalized sections go in Flash */
   /* For SDFlash to program these, they must be allocated to page 0 */
   .econst             : > FLASH_BOOT,      PAGE = 0, ALIGN(4)
   .switch             : > FLASH_BOOT,      PAGE = 0, ALIGN(4)
   .const              : > FLASH_BOOT       PAGE = 0, ALIGN(4)

   /* Allocate IQ math areas: */
   IQmath              : > FLASH_BOOT,     PAGE = 0            /* Math Code */
   IQmathTables        : > IQTABLES,   PAGE = 0, TYPE = NOLOAD

   Cla1Prog            : LOAD = FLASH_APPPROG,
                         RUN  = RAM_CLAPRG,
                         LOAD_START(_Cla1funcsLoadStart),
                         LOAD_END(_Cla1funcsLoadEnd),
                         RUN_START(_Cla1funcsRunStart),
                         PAGE = 0

   Cla1ToCpuMsgRAM     : > CLA2CPU,      PAGE = 1
   CpuToCla1MsgRAM     : > CPU2CLA,      PAGE = 1



   .reset              : > RESET,      PAGE = 0, TYPE = DSECT
   vectors             : > VECTORS     PAGE = 0, TYPE = DSECT

}

/*
//===========================================================================
// End of file.
//===========================================================================
*/

APP CMD 文件

-heap 0x400
MEMORY
{
PAGE 0:    /* Program Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
   RAM_BOOTPROG   : origin = 0x008000, length = 0x000020     /* on-chip RAM block L0, bootloader 中对时间敏感函数 */
   RAM_PROG       : origin = 0x008020, length = 0x000520     /* on-chip RAM block L0, bootloader 数据接收缓存区,1313byte,每次接收1Kb */
   RAM_CLAPRG     : origin = 0x009000, length = 0x001000     /* For CLA           */
   OTP            : origin = 0x3D7800, length = 0x000400     /* on-chip OTP       */
   Flash_EEPROM   : origin = 0x3E8000, length = 0x002000     /* Flash EEPROM 扇区H */
   APP_VER        : origin = 0x3EA000, length = 0x000010     /* 应用程序版本号  ,16Byte*/

   FLASH_APPPROG  : origin = 0x3EA010, length = 0x00BFEC     /* 应用程序存储空间,47.98 Kb  BFEC*/
   APP_START      : origin = 0x3F5FFC, length = 0x000002     /* 应用程序入口  2Byte */
   BOOT_VER       : origin = 0x3F6000, length = 0x000002     /* Bootloader 程序版本号  */
   FLASH_BOOTRAM  : origin = 0x3F6002, length = 0x000020      /* FLASH 操作函数存储空间 */
   FLASH_RTS      : origin = 0x3F6022, length = 0x00032E      /*  RTS库空间 */
   BOOT_UPDATE    : origin = 0x3F6350, length = 0x000002     /* Bootloader程序 升级入口地址*/
   BOOT_RESET     : origin = 0x3F6352, length = 0x000002     /* Bootloader程序 复位入口地址*/
   FLASH_BOOT     : origin = 0x3F6354, length = 0x001C2C     /* bootloader程序存储空间 7.04kB */

   CSM_RSVD      : origin = 0x3F7F80, length = 0x000076     /* !!!不能修改 */
   BEGIN         : origin = 0x3F7FF6, length = 0x000002     /* !!!不能修改 */
   CSM_PWL_P0    : origin = 0x3F7FF8, length = 0x000008     /* !!!不能修改 */

   IQTABLES    : origin = 0x3FE000, length = 0x000B50     /* IQ Math Tables in Boot ROM */
   IQTABLES2   : origin = 0x3FEB50, length = 0x00008C     /* IQ Math Tables in Boot ROM */
   IQTABLES3   : origin = 0x3FEBDC, length = 0x0000AA	  /* IQ Math Tables in Boot ROM */

   ROM         : origin = 0x3FF27C, length = 0x000D44     /* Boot ROM */
   RESET       : origin = 0x3FFFC0, length = 0x000002     /* part of boot ROM  */
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E     /* part of boot ROM  */

PAGE 1 :   /* Data Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
           /* Registers remain on PAGE1                                                  */
   BOOT_RSVD      : origin = 0x000000, length = 0x000050     /* Part of M0, BOOT rom will use this for stack */
   RAMM0          : origin = 0x000050, length = 0x0003B0     /* on-chip RAM block M0 */
   RAMM1          : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   RAM_DATA       : origin = 0x008940, length = 0x0006C0     /* For .ebss */
   CLA2CPU        : origin = 0x001480, length = 0x000080     /* CLA1_MSGRAMLOW */
   CPU2CLA        : origin = 0x001500, length = 0x000080     /* CLA1_MSGRAMHIGH */
   FLASH_BOOTDATA : origin = 0x3F7754, length = 0x00082C     /* BootLoader数据空间 ,共计2.04Kb*/
   FLASH_APPDATA  : origin = 0x3F4010, length = 0x001FEC     /* 应用程序数据空间 ,共计7.98Kb*/
   APP_CHECK      : origin = 0x3F5FFE, length = 0x000001     /* 应用升级标志  */
   JTAG_FLAG      : origin = 0x3F5FFF, length = 0x000001     /* JTAG 仿真标志 */

}

/* Allocate sections to memory blocks.
   Note:
         codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
                   execution when booting to flash
         ramfuncs  user defined section to store functions that will be copied from Flash into RAM
*/

SECTIONS
{

   /* Bootloader :14/14 */
   codestart           : > APP_START,          PAGE = 0
   UpdateEntry         : > BOOT_UPDATE,        PAGE = 0
   BootReset           : > BOOT_RESET,         PAGE = 0
   FlashBoot           : > FLASH_BOOT,         PAGE = 0

   RamBoot             : LOAD = FLASH_BOOTRAM,
                         RUN  = RAM_BOOTPROG,
                         LOAD_START(_RamBootLoadStart),
                         LOAD_END(_RamBootLoadEnd),
                         RUN_START(_RamBootRunStart),
                         PAGE = 0
/*
   Rts                 : LOAD = FLASH_RTS, PAGE = 0
   {
         -lrts2800_ml.lib <exit.obj _lock.obj> (.text)
         -lrts2800_ml.lib <exit.obj _lock.obj> (.cinit)
   }
*/

    BootVer           : > BOOT_VER,              PAGE = 0
    AppStart          : > APP_START,             PAGE = 0
    AppCheck          : > APP_CHECK,             PAGE = 1
    JtagFlag          : > JTAG_FLAG,             PAGE = 1
   /* Bootloader :14/14  End*/

   /* Application Version*/
    AppVer            : > APP_VER,              PAGE = 0

  /* Allocate program areas: */
   .cinit              : > FLASH_APPPROG      PAGE = 0
   .pinit              : > FLASH_APPPROG,     PAGE = 0
   .text               : > FLASH_APPPROG      PAGE = 0

   ramfuncs            : LOAD = FLASH_APPPROG,
                         RUN  = RAM_PROG,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

   csmpasswds          : > CSM_PWL_P0  PAGE = 0
   csm_rsvd            : > CSM_RSVD    PAGE = 0

   /* Allocate uninitalized data sections: */
   .stack              : >  RAMM1,          PAGE = 1
   .cio                : >> RAMM0 | RAMM1,  PAGE = 1
   .sysmem             : > RAMM0,           PAGE = 1
   .ebss               : > RAM_DATA,        PAGE = 1
   .esysmem            : > RAM_DATA,        PAGE = 1

   /* Initalized sections go in Flash */
   /* For SDFlash to program these, they must be allocated to page 0 */
   .econst             : > FLASH_APPPROG,      PAGE = 0
   .switch             : > FLASH_APPPROG,      PAGE = 0
   .const              : > FLASH_APPPROG       PAGE = 0

   /* Allocate IQ math areas: */
   IQmath              : > FLASH_APPPROG,     PAGE = 0            /* Math Code */
   IQmathTables        : > IQTABLES,   PAGE = 0, TYPE = NOLOAD

   Cla1Prog            : LOAD = FLASH_APPPROG,
                         RUN  = RAM_CLAPRG,
                         LOAD_START(_Cla1funcsLoadStart),
                         LOAD_END(_Cla1funcsLoadEnd),
                         RUN_START(_Cla1funcsRunStart),
                         PAGE = 0

   Cla1ToCpuMsgRAM     : > CLA2CPU,      PAGE = 1
   CpuToCla1MsgRAM     : > CPU2CLA,      PAGE = 1



   .reset              : > RESET,      PAGE = 0, TYPE = DSECT
   vectors             : > VECTORS     PAGE = 0, TYPE = DSECT

}

/*
//===========================================================================
// End of file.
//===========================================================================
*/