[应用相关] IAR 生成的bin文件大于实际大小

[复制链接]
 楼主| androidbus 发表于 2020-7-19 20:22 | 显示全部楼层 |阅读模式
我用CC debugger烧完仿真看flash,空间还有剩80+kb,但是生成bin之后就300+kb,之前有勾选options->linker->output->format的第一个选项,bin居然高达2M!我用的是CC2530,FLASH只有256K,怎么能让bin生成实际大小啊?
litengg 发表于 2020-7-19 20:24 | 显示全部楼层
你的format选择的是hex吧,编辑器打开观察内容。。
qiangweii 发表于 2020-7-19 20:29 | 显示全部楼层
连接文件地址分配的问题,当然是bin的问题。。
shashaa 发表于 2020-7-19 20:30 | 显示全部楼层
偶然有一次程序是0地址开始,扩展了SDRAM在0x20000000地址,FLASH有字库,打算把字库编译到SDRAM中好烧写(特殊字库要带地址信息),以前都是hex文件,用bin,编译时计算机嗤啦嗤啦了半天,以为编译器死机了,生成的bin到了几百兆。
xia00 发表于 2020-7-19 20:36 | 显示全部楼层
因为bin文件不包含数据地址信息,所以要整个数据填充,例如,程序从0开始100个字节,还有一部分从10000开始100个字节,那么生成bin会从0直接到10100,中间会填充无用的数据;而hex文件会指定位置。
hfdy01 发表于 2020-7-19 20:37 | 显示全部楼层
正常来说hex比bin多包含了一些地址信息,会导致hex比bin更大。
CallReceiver 发表于 2020-7-19 20:43 | 显示全部楼层
我生成的bin也确实比hex小个100+k,但是没意义呀,我要的是bin文件做串口烧写,不用烧写或调试器的,类似OAD。
boy1990 发表于 2020-7-19 20:45 | 显示全部楼层
一般是地址空间不连续导致的 ,建议你先看看map的情况。。
sourceInsight 发表于 2020-7-19 20:50 | 显示全部楼层
检查你的linker地址分配文件,CC2530的FLASH好像是从8000H开始的,看看你的配置文件是从那开始的;
刚说了,bin文件没有其他信息,hex文件有地址信息;
bbapple 发表于 2020-7-19 20:51 | 显示全部楼层
数据是连续的时候,hex文件大,不连续就很难说了。
handleMessage 发表于 2020-7-19 20:54 | 显示全部楼层
一般hex比bin多包含了一些地址信息,所以应该是hex比bin更大的。
zhouhuanの 发表于 2020-7-19 20:59 | 显示全部楼层
我想把这些填充无用的都去掉要怎么配置?我对比两个xcl文件做修改bin好像也没有变化啊
wanglaojii 发表于 2020-7-19 21:01 | 显示全部楼层
这个具体的我就不太清楚的了,一般是直接生成.hex文件的
laozhongyi 发表于 2020-7-19 21:06 | 显示全部楼层
我也是直接开启编译,开启优化,没注意这个问题。
Edisons 发表于 2020-7-19 21:08 | 显示全部楼层
我的cc2530是只有256kb的flash,如果生成hex的话就太大了,写不进去,所以只能用bin。
_gege 发表于 2020-7-19 21:14 | 显示全部楼层
handleMessage 发表于 2020-7-19 20:54
一般hex比bin多包含了一些地址信息,所以应该是hex比bin更大的。

但是hex太大了,都快超过flash两倍了。
Mozarts 发表于 2020-7-19 21:16 | 显示全部楼层
楼主,你好,最后成功了吗?我也想这么做一个,但是怎么做呢?
Listate 发表于 2020-7-19 21:20 | 显示全部楼层
只要不影响正常使用,不用调整bin格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

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