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.
问题描述:目前我们公司的控制器在车厂那里做BOOTLOADER刷写测试,提供的HEX文件被车厂判定为不合格。给他们的HEX文件是用CCS5.4生成的。如图所示:
:02000004003FBB
:20000000FE02761F0249921C900F5208761F024D56B40127FFE401CA761F0249CC1FFF00CB
:20001000FFC790F09641CC1FFF00FFC7900F9642924156C000BF761F024D922D56B0012713
:2000200056C001B4520056C000B1761F0249CC1FFF00FFC7761F024D900F962B520756B6A3
:200030000127FFE601A3761F0249921F90FF523EED2D761F024D2B0D761F023E2B21761F63
其中第一个字节20表示每一行数据长度,第2和第3个字节表示偏移地址,从第五个字节开始连续32个字节代表数据。车厂的刷写平台在识别HEX文件的时候认为每一行的数据个数为32个字节,但是地址的增量却是16个字节的长度,这种格式他们的刷写平台识别不了,要求整改为如下的方式:
:02000004003FBB
:20000000021F491C0F081F4DB427E4CA1F491F00C7F0411F00C70F4241C0BF1F4D2DB02768
:20002000C0B400C0B11F491F00C71F4D0F2B07B627E6A31F491FFF3E2D1F4D0D1F3E211F73
:200040004D111412151F491F1F4D111F491E001F4DC7121F491E00C780C0741F4DBF1B2EC3
即每一行的地址偏移量和数据长度保持一致,但是目前看来这样是无法实现的,因为TI官方给的生成HEX文件的命令行已经指示了 romwidth = 16
希望TI的FAE能够给予解决办法
CCS 5.4能不能修改我不知道
但底下wiki說明的是CCS6.0版本
http://processors.wiki.ti.com/index.php/Hex_Utility_in_CCS
你試著看能不能修改romwidth option
romwidth 是芯片已经固定好了,DSP的Datesheet里已经说明了,F28031的Flash为32k×16,也就是一个映射地址里存两个字节的数据。
我曾经试着改romwidth为8,发现生成的HEX文件相比romwidth为16少了一半数据,并且是每一个映射地址少一个。
两种格式不一样的,区别就在于HEX文件中地址的递增量,对于8位机而言,地址的递增量为0x10 对应的数据增量也为0x10,即一个地址存一个字节 。 而对于16位机而言,地址的递增量为0x10,对应的数据增量为0x20,即一个地址存两个字节。车厂的HEX格式就是8位机的格式,因此在读取16位机的HEX文件时会报错。