打印

CCS编译生成.hex文件问题

[复制链接]
6245|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用的MCU是C2000 ,CCS编译生成.hex文件,仿真时特意注意看了芯片FLASH内存中的内容和.hex文件中的内容,发现.hex中只有FLASH 16 bit内存中的低八位数据,没有高八位数据,用CCS导入.hex文件烧录到flash后,数据不对也不能仿真。  .hex文件是配置CCS 6.0后编译自动生成的(同时生成.out与.hex文件)。请问这是什么原因?难道.hex里的配置与FLASH不是一一对应的么?

相关帖子

沙发
dirtwillfly| | 2015-9-18 14:17 | 只看该作者
没听说过这种情况。c2000是32位的mcu

使用特权

评论回复
板凳
miantiao|  楼主 | 2015-9-18 14:25 | 只看该作者
dirtwillfly 发表于 2015-9-18 14:17
没听说过这种情况。c2000是32位的mcu

是320F2806X系列的,FLASH是X16的

使用特权

评论回复
地板
dirtwillfly| | 2015-9-18 14:30 | 只看该作者
@zhangmangui 帮忙看看这个问题

使用特权

评论回复
5
miantiao|  楼主 | 2015-9-18 14:35 | 只看该作者
dirtwillfly 发表于 2015-9-18 14:17
没听说过这种情况。c2000是32位的mcu

    下图是CCS观察的FLASH中的数据。


下图是.hex文件内容的截图,从0x3E0000开始


.hex中0x3E0000内容是0x0C44,而FLASH中0x3E0000实际为0xFE0C,0x3E0001为0xA044

使用特权

评论回复
6
miantiao|  楼主 | 2015-9-18 14:46 | 只看该作者
本帖最后由 miantiao 于 2015-9-18 14:52 编辑

按.hex文件中的地址,.hex中0x3E0000内容好像是0x0C,只存储了低八位。
但用CCS导入这个.hex文件烧录到芯片中,程序无法仿真运行(上图的0x3E0000内容为0xFE0C是导入烧录的.out文件,程序可以正常运行),仿真观察如下图:

使用特权

评论回复
7
miantiao|  楼主 | 2015-9-18 16:10 | 只看该作者
dirtwillfly 发表于 2015-9-18 14:30
@zhangmangui 帮忙看看这个问题

谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。

使用特权

评论回复
8
dirtwillfly| | 2015-9-18 17:06 | 只看该作者
miantiao 发表于 2015-9-18 16:10
谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。 ...

解决了就好。我也长见识了

使用特权

评论回复
9
豆腐块| | 2015-9-18 20:15 | 只看该作者
生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确

的确,hex应该对应16的,这个功能还没用过

使用特权

评论回复
10
android2| | 2015-9-21 21:30 | 只看该作者
生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了

前来学习

使用特权

评论回复
11
tongbu2015| | 2015-9-21 22:03 | 只看该作者
miantiao 发表于 2015-9-18 16:10
谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。 ...

这个是需要多注意这些细节的

使用特权

评论回复
12
zhangbo1985| | 2015-9-21 23:24 | 只看该作者
这个属于细节上的问题的,直接设置就可以啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

69

帖子

1

粉丝