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.

TMS320F28377S: ccs10生成hex文件

Part Number: TMS320F28377S

由于需要使用串口烧写hex文件到片上flash,所以需要使用CCS10自带的hex生成功能。配置如下:

--byte --memwidth=16 --order=MS --romwidth=16 --diag_wrap=off --ascii --binary

我已经测试过好几版软件,都是程序可以正常的烧写和加载执行。

但是有时候就会碰到,生成的hex文件烧写和out文件烧写flash地址不一致的情况。

比如下面这种情况:

FLASH使用地址长度为0x18230,那么使用hex方式,烧写到flash中,查询存储区域,最后一个数据的flash地址为0x9c231,和map文件数据长度一致。

但是如果使用out方式烧写flash,查询存储区域,最后一个数据地址为0x9c233,比map文件长度多了两个,感觉是ccs10在烧写时,自动补了两个单元的长度。

TI的大拿们,你们为什么要搞这个玩意,就不能让人好好的生成就完事了啊。

现在基本确定是因为我增加了一部分参数定义的问题,但是具体是哪个定义,无法确认。望大拿们给与讲解。谢啦。

怀疑参数定义如下:

unsigned long g_bErrFlag ;
//unsigned long u32CanAErrorStatus;

tCANMsgObject TXCANMessage[2];//发送消息
tCANMsgObject RXCANMessage[2];//接收消息
//uint32_t RX_Lunfa1 = 0;
//uint32_t RX_Lunfa3 = 0;
//int testnum1[17] ;
//int testnum2[17] ;
//unsigned char TX_1_Data[8] ={ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };//发送缓存

unsigned char RX_2_Data[8] ={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };//接收缓存 充放电报警和故障电流
unsigned char RX_3_Data[8] ={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };//接收缓存 BMS报警和工作状态

Uint32 CANSENDbox[2] = {0,0}; //can邮箱发送状态,对应发送邮箱0、1、2


unsigned char CANREC_STATE[2] = {CAN_REC_READY,CAN_REC_READY};
unsigned char CANSEND_STATE[2] = {CAN_SEND_OVER,CAN_SEND_OVER};