打印

编译完的hex文件超过单片机内存很大了,为什么还可以下...

[复制链接]
3336|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
叶覃|  楼主 | 2016-9-11 23:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
huafei123| | 2016-9-12 10:40 | 只看该作者
bin文件是和下载到Flash的实际大小一样,hex的话会大点

使用特权

评论回复
板凳
mdk55555| | 2016-9-12 16:38 | 只看该作者
HEX文件具有调试信息,所以会很大

使用特权

评论回复
地板
haokeer| | 2016-9-13 22:09 | 只看该作者
这里有两个概念,一个是文本文件体积,HEX文件就是文本文件,记事本就可以打开。一个是代码文件,代码文件是二进制文件。

使用特权

评论回复
5
xiaolong12| | 2016-9-16 15:10 | 只看该作者
其实,不要看HEX文件有多大,它只是中间文件,烧录到单片机还需要转换。有一个办法判断HEX文件是否真的大于64K:将该文件调入烧录软件,如果弹出警告说文件超范围,那才是真的太大了。

使用特权

评论回复
6
喵喵小星人| | 2016-9-16 16:57 | 只看该作者
一般hex文件的大小并不是下载到单片机内的大小

使用特权

评论回复
7
maninman1981| | 2016-9-17 11:46 | 只看该作者
hex转换成bin文件才是实际大小

使用特权

评论回复
8
yysforever| | 2016-9-18 14:10 | 只看该作者
要打开编译后的map文件才能看到实际程序大小,这个hex是比实际程序占用flash大的

使用特权

评论回复
9
冰是睡着的冰| | 2016-9-18 16:08 | 只看该作者
看hex有毛用,里面还有地址代码,地址代码给下载器看的又不是给单片机看的,code才是正道

使用特权

评论回复
10
jouney316| | 2016-9-18 20:32 | 只看该作者
Hex只是文本形式的文件,实际烧录到闪存的应该是bin格式吧。

使用特权

评论回复
11
Dennis-Zhou| | 2016-9-18 22:06 | 只看该作者
HEX里面ascii信息,真正的镜像大小是bin的大小,可以编译完在keil查得。

使用特权

评论回复
12
l科科1987| | 2016-9-19 15:15 | 只看该作者
操作系统文件管理是以簇为最小单位的,即使文件大小不到一簇也需要占用一簇的空间,你看到的HEX的大小并不等于烧写到单片机ROM中的大小,HEX文件还包含很多信息比如校验码等,应该直接看下载软件显示的信息,或编绎器显示的CODE信息为准。

使用特权

评论回复
13
dongbaohui| | 2016-9-19 19:40 | 只看该作者
HEX文件里面用的是可打印字符,一般是把每个字节变成两个字符,然后加上前面的地址字符,后面的校验两个字符,另外还有两个回车换行符,这样基本上是16字节能够变成45个字节,大约是3倍,但是HEX文件可以忽略无效数据,所以只能说大致比例是接近3.

使用特权

评论回复
14
叶覃|  楼主 | 2016-10-16 15:37 | 只看该作者
huafei123 发表于 2016-9-12 10:40
bin文件是和下载到Flash的实际大小一样,hex的话会大点

.out文件更大,比.hex文件大多了。

使用特权

评论回复
15
叶覃|  楼主 | 2016-10-16 15:38 | 只看该作者
xiaolong12 发表于 2016-9-16 15:10
其实,不要看HEX文件有多大,它只是中间文件,烧录到单片机还需要转换。有一个办法判断HEX文件是否真的大于 ...

拿如何看实际占用的单片机空间大小呢?

使用特权

评论回复
16
叶覃|  楼主 | 2016-10-16 15:38 | 只看该作者
maninman1981 发表于 2016-9-17 11:46
hex转换成bin文件才是实际大小

hex如何转换为.bin文件呢,我用IAR。好像无法生成.bin文件。

使用特权

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

本版积分规则

18

主题

180

帖子

0

粉丝