CCS编译生成.hex文件问题

[复制链接]
7119|11
 楼主| miantiao 发表于 2015-9-18 13:53 | 显示全部楼层 |阅读模式
使用的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 帮忙看看这个问题
 楼主| 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| miantiao 发表于 2015-9-18 14:46 | 显示全部楼层
本帖最后由 miantiao 于 2015-9-18 14:52 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| miantiao 发表于 2015-9-18 16:10 | 显示全部楼层
dirtwillfly 发表于 2015-9-18 14:30
@zhangmangui 帮忙看看这个问题

谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。
dirtwillfly 发表于 2015-9-18 17:06 | 显示全部楼层
miantiao 发表于 2015-9-18 16:10
谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。 ...

解决了就好。我也长见识了
豆腐块 发表于 2015-9-18 20:15 | 显示全部楼层
生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确

的确,hex应该对应16的,这个功能还没用过
android2 发表于 2015-9-21 21:30 | 显示全部楼层
生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了

前来学习
tongbu2015 发表于 2015-9-21 22:03 | 显示全部楼层
miantiao 发表于 2015-9-18 16:10
谢谢,问题已经解决了,生成.hex属性设置中有个选项Specify rom width,设为16生成.hex文件就正确了。 ...

这个是需要多注意这些细节的
zhangbo1985 发表于 2015-9-21 23:24 | 显示全部楼层
这个属于细节上的问题的,直接设置就可以啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

69

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部