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.

28377D 二次 boot 跳转 APP异常

Other Parts Discussed in Thread: TMS320F28377D, C2000WARE

写了一个二次 bootloader,使用SCI进行在线升级,bootloader放在A--至---D扇区,

从E---F扇区(0x88000)开始放APP程序,

APP程序的CMD文件中BEGIN设置为APP的起始地址E扇区-----0x88000,PROG程序从E扇区0x88002开始

//============================================

仿真器,烧录APP---EF扇区后,用CCS 的memory save将flash数据保存,

仿真,通过bootloader 使用SCI串口烧录APP---EF扇区后,用CCS 的memory save将flash数据保存

比较上述两种情况烧写的flash内容,是一致的,也就是bootloader的烧写flash应该是没问题的

//============================================

使用bootloader,SCI串口烧录APP程序

1、先使用JTAG烧录bootloader程序,烧入ABCD扇区

2、使用bootloader,SCI串口烧录APP程序----烧入-扇区E----F  

3、重新上电,不能跳转到APP,进入非法中断

 

使用JTAG烧录APP程序可以从bootloader跳转到APP

1、先使用JTAG烧录bootloader程序,烧入ABCD扇区

2、再使用JTAG仿真器-烧录APP程序----烧入-扇区E----F  (不擦除bootloader的 ABCD扇区)

3、重新上电,可以从bootloader正确跳转到APP

证明跳转程序应该是没问题的

 

//=======================

看了网上的一些帖子,已经尝试着把APP里面ECC使能关闭了,效果还是一样

 

 

//============================

APP--CMD里面

    BEGIN   : origin = 0x088000, length = 0x000002

    PROG    : origin = 0x088002, length = 0x00FFFE  

    RESET   : origin = 0x3FFFC0, length = 0x000002
SECTIONS
{
    //bl_table            : > FLASHA,   PAGE = 0, type = DSECT
    //app_table           : > BEGIN,   PAGE = 0
    /* Allocate program areas: */
    .cinit              : > PROG    PAGE = 0
    .binit              : > PROG    PAGE = 0
    .pinit              : > PROG    PAGE = 0
    .text               : > PROG    PAGE = 0
     codestart          : > PROG    PAGE = 0 
 
此处如果改为   codestart          : > BEGIN  PAGE = 0 就会报错  
"../Cmd/TMS320F28377D_cpu01.cmd", line 100: error #10099-D: program will not fit into available memory.  placement with alignment/blocking fails for section "codestart" size 0x2 page 0.  Available memory ranges:
 
会不会是因为这里导致的?
烦请指导一下