Keil中 Program Size: Code RO-data RW-data ZI-data 所代表的意思 及.hex文件的含义

	K是KB的简写,都是说文件大小的!1T=1024G;1G=1024M;1M=1024K;1K=1024byte
实际上都是少写了一个B,也就是Byte!
	K是数值;而B是字节,KB是单位 
	KB是存储空间大小的单位,1KB=1024B=1024*8bit,1024KB=1MB,1024MB=1GB 
	b=bit 表示“位” ,B=Byte 表示“字节”,1 Byte=8 bit --bit (binary digit) 位 
	位是计算机数据中最小单元。位的值只会是0或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文件是你实际产生的可执行代码数据。网上有不少工具可以转换的。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值