[讨论] IAR 编译生成的bin文件大小问题

fish001   2018-10-18 20:46 楼主
请教大家一个问题,我在IAR下编译一个工程后显示的代码信息如下:

     IAR Universal Linker V5.3.2.26
     Copyright 1987-2012 IAR Systems AB.

1 894 bytes of CODE  memory
   184 bytes of DATA  memory (+ 44 absolute )
    43 bytes of CONST memory

但生成的bin文件大小却是32K,我linker->output中选择的是raw-binary。
请问这是什么原因。

其实我是想做个远程升级的程序,用的是cc430,片上代码空间是32K,再运行boot程序的话就不够用了,请大牛解惑,不胜感激。

原来的程序,bin文件只有三四十K大小,改动了一部分后,bin有256兆,没找出原因。
用的芯片是kinetis K10,IAR开发环境。

回复评论 (7)

估计每编译一次就占一次flash的内存,原来的不会清除吧,所以就变大了,空间不够用了。
点赞  2018-10-19 08:39
用ultraedit或vim以二进制格式打开bin文件,观察是否有大量连续的0存在,如果有请核对链接脚本是否描述正确
点赞  2018-11-10 17:33
引用: BasaraTama 发表于 2018-11-10 17:33
用ultraedit或vim以二进制格式打开bin文件,观察是否有大量连续的0存在,如果有请核对链接脚本是否描述正确

谢谢指导
点赞  2018-11-30 19:11
片上代码空间是32K,再运行boot程序的话
改动了一部分后,bin有256兆,修改后都这么大
点赞  2018-12-1 17:36
不行新建个工程文件再编译吧。
点赞  2018-12-3 10:17
配置文件不是默认的吧,你把那个.xcl重新正确添加一下
点赞  2018-12-7 15:12
有人这样说:iar编译的bin文件大的原因是链接文件icf,包括的地址范围很大。该工程只能用来在线调试,如果你要想生成bin文件来下载到开发板上,得需要修改icf文件。
点赞  2018-12-7 15:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复