请教大家一个问题,我在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开发环境。
估计每编译一次就占一次flash的内存,原来的不会清除吧,所以就变大了,空间不够用了。
用ultraedit或vim以二进制格式打开bin文件,观察是否有大量连续的0存在,如果有请核对链接脚本是否描述正确
片上代码空间是32K,再运行boot程序的话
改动了一部分后,bin有256兆,修改后都这么大
配置文件不是默认的吧,你把那个.xcl重新正确添加一下
有人这样说:iar编译的bin文件大的原因是链接文件icf,包括的地址范围很大。该工程只能用来在线调试,如果你要想生成bin文件来下载到开发板上,得需要修改icf文件。