关于Keil C 存储容量的问题 各位大虾帮帮忙

关于Keil C 存储容量的问题 各位大虾帮帮忙,第1张

.hex文件中包含有实际代码的存储地址、帧长度、类型、校验等,而这些东西在你烧录程序时并不会烧录进单片机,这些东西只是为烧录软件指定程序要烧录进单片机的地址,以及保证要烧录数据的完整性。所以实际烧录进单片机的数据要远远小于.hex中的数据。

比如,我的一个.hex的文件大小为52KB,我烧录进单片机,但实际上占用的单片机的存储空间只有20.5KB。

所以,你的单片机为8K大小,.hex文件是可以远远大于8KB的。

要查询你的程序占用了多大的空间有两个办法,一个是利用编译器查看编译后可执行文件的大小,比如keil c就很容易查看,在build窗口中,编译后有下列类似语句:Program Size: Code=5060 RO-data=12 RW-data=40 ZI-data=1792

其中的Code说明我的代码大小为5060个字节,不到5KB,这个时候我的.hex文件大小是15KB。

另一个方法是将.hex文件转成.bin文件,bin文件是你实际产生的可执行代码数据。网上有不少工具可以转换的。

编译后看代码大小。

KEIL最下面的一栏里面。

例如:

Program Size: data=79.0 xdata=31 code=7582

code后面 就是代码的大小。

希望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11840580.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存