hhxb 发表于 2012-5-6 20:25:06

关于程序在单片机中实际大小的问题?

一般大家都是把HEX文件下到单片机里;

我编译了一个程序keil显示
data=44.0 xdata=0 code=1670;

HEX文件大小5,238 字节
那这个程序在单片机里占flash的空间是多少?
是1670还是5238?
最好有详细解释;

hhxb 发表于 2012-5-6 20:26:25

我遇到过一次HEX比flash大依然下载成功。

ourdev850725 发表于 2012-5-6 20:36:28

code=多少就是多少,Hex只是一种标准存储格式,并不直接等于程序有多大的,写进单片机里面的时候需要处理一下的,BIN格式的那种就是直接对应的,里面的数据就直接等于写进单片机Code里面的数据

gongnn 发表于 2012-5-6 20:42:02

1670{:biggrin:}{:biggrin:}

jlhgold 发表于 2012-5-6 20:44:10

按code大小来 hex的大小无实际意义 除非是bin大小 我有个学长自己写的软件可以计算hex文件转换成bin后的实际大小 就是不知道他同不同意发上来{:biggrin:}

雨雪随行 发表于 2012-5-6 21:06:23

应该是1670/512=3.26

4*512=2048byte
哈哈

sniper.q 发表于 2012-5-6 21:17:57

去找个hex2bin的转一下,看看bin多大就知道了。
如果你有源代码,在keil编译时就可以看到data、xdata、code的大小。
hex文件中有地址和校验内容会比实际内容大。

xjbh001 发表于 2012-5-8 16:02:16

data=44.0 ;即占用的RAM空间
code=1670;即占用的ROM空间
与HEX大小 没有关系

zhuangchao12 发表于 2012-5-8 16:21:16

又学到知识啦

Denglucky4457 发表于 2015-7-3 13:08:53

终于弄明白了,非常感谢。

sbusr 发表于 2015-7-3 13:21:39

一般hex比bin的两倍还要大些,keil4环境。
页: [1]
查看完整版本: 关于程序在单片机中实际大小的问题?