单片机flash大小与hex文件大小的具体关系

[复制链接]
17086|28
手机看帖
扫描二维码
随时随地手机跟帖
afisk|  楼主 | 2010-11-16 16:48 | 显示全部楼层 |阅读模式
ejack| | 2010-11-16 19:02 | 显示全部楼层
hex文件其实是个格式规范的文本文件。程序代码大小与hex文件大小没有绝对的关联性,不过对于C51编译的代码来说由于塞得比较紧密(不像个人写汇编那么多随意的gap)可以认为有一个常见的比例关系。
程序代码的实际大小以hex文件中最高地址,或者以转换后的bin大小也可。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
afisk + 1
chunyang| | 2010-11-16 19:07 | 显示全部楼层
HEX文件需要转换成BIN文件后才是实际机器代码的尺寸,编译器在编译时也会告知机器代码的长度,这个参数才是要和存储器匹配的。

使用特权

评论回复
xwj| | 2010-11-16 19:12 | 显示全部楼层
HEX文件,如果是连续地址的,除以2.6就差不多是实际大小。

一般编译器(比如Keil)编译后都会提示代码占用空间的,LZ都不看的吗?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
afisk + 1
coody| | 2010-11-16 22:33 | 显示全部楼层
编译后看CODE大小,或者转成BIN看大小,HEX不准确的

使用特权

评论回复
liang7143| | 2010-11-17 09:57 | 显示全部楼层
HEX文件,里面有地址,还有验证信息

使用特权

评论回复
ayb_ice| | 2010-11-17 10:12 | 显示全部楼层
编译器又不知道你的硬件是怎么设计的
比如89C52 8KB程序
但你有可能使用外部程序,你的扩展设计可以是32K,64K啊,甚至使用切页方式16M,或者任意值
当然如果指定使用片内内存,编译代码如果超过范围则编译器会报警
....

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
afisk + 1
batsong| | 2010-11-17 12:50 | 显示全部楼层
文件大小是在windows文件系统下的大小

使用特权

评论回复
mcu9999| | 2010-11-17 13:26 | 显示全部楼层
可能是Flash的空间大小是不正确的,
标4K,本身有8K...

使用特权

评论回复
tianm| | 2010-11-17 13:32 | 显示全部楼层
找个hex文件的介绍看看

使用特权

评论回复
jyxielong| | 2010-11-17 16:48 | 显示全部楼层
HEX 下到flash中后,占得大小比hex本身文件大

使用特权

评论回复
jyxielong| | 2010-11-17 16:49 | 显示全部楼层
:L说错了,变小。。。。不清楚他们有什么关系

使用特权

评论回复
afisk|  楼主 | 2011-2-12 21:33 | 显示全部楼层
谢谢大家的回答 我现在彻底搞懂了 :)

使用特权

评论回复
afisk|  楼主 | 2011-2-12 21:36 | 显示全部楼层
7# ayb_ice

受用了 多谢!!

使用特权

评论回复
afisk|  楼主 | 2011-2-12 21:37 | 显示全部楼层
2# ejack

非常感谢你的回答,我现在对这个了解了!!

使用特权

评论回复
afisk|  楼主 | 2011-2-12 21:38 | 显示全部楼层
3# chunyang

回帖晚了 主要是前一段有点事 不好意思 chunyang大哥很给力!!!

使用特权

评论回复
china_fog| | 2011-2-12 21:41 | 显示全部楼层
编译完成下面有报告,程序要占多少字节,RAM空间要占多少,都有的,要么你生产各BIN文件来下载也可以。HEX跟实际尺寸差别蛮大

使用特权

评论回复
coody| | 2011-2-12 23:49 | 显示全部楼层
LZ可以在STC的下载软件中看到最后的地址,不超过的就可以,超过的话,会报告的。如果没有报告,则大小在MCU的FLASH范围内。

使用特权

评论回复
nan_banqiu| | 2011-2-14 18:09 | 显示全部楼层
学习了

使用特权

评论回复
AI_YSD| | 2012-12-31 16:29 | 显示全部楼层
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

53

帖子

1

粉丝