如何减小hex文件的大小
各位大佬,采用多任务模式,几个简单的程序,总共也就几百行代码,hex文件就有36K。
感觉不正常。.c文件中基本都包含两个stc.h 及usb.h,
个人感觉是这两个文件重复了,导致hex文件偏大,
有没有办法避免重复这两个.h文件?
感谢各位大佬!
hex文件偏大有什么影响吗,如果是硬盘不够用了,可以压缩保存,不过几十K的文件,没什么必要吧。
hex文件的大小与占用单片机ROM的尺寸没有直接关系,具体占用情况需把hex文件加载入isp软件查看,或者编译时看编译结果信息。
编译尺寸大的固件hex文件一定会大,但hex文件大的不一定占用rom多。 本帖最后由 a496298685 于 2024-11-3 15:04 编辑
这是一个老生常谈的话题了
这个帖子里面详细,应该已经把所有措施列出来了
https://www.stcaimcu.com/forum.p ... ptid=7597&pid=69865
即两个措施:
1. 使用Keil的优化级别9将代码优化,可以进一步节省程序空间
2. 使用"REMOVEUNUSED"。把target options中的device页中选上"Use LX51 ...",最后在LX51 Misc页中的Misc Control中填入"REMOVEUNUSED",确认后重新编译即可自动去掉未调用的函数。
hex是HEX文本,且还包含地址信息、校验、类型等等;
要看占用ROM大小可以转成bin看实际大小或加载在AI-ISP中查看。
.c文件中基本都包含两个stc.h 及usb.h,
个人感觉是这两个文件重复了,导致hex文件偏大,
有没有办法避免重复这两个.h文件?
你的这个担心是完全没有必要的,每个代码文件在编译过程中都只会编译一次,并最终链接在二进制文件的某个特定位置
不会重复出现在二进制机器码里面的
hex大小不是机器码大小,HEX文件本质是ASCII bin文件才能表现出编译文件的大小,hex文件和实际大小差好多。 保存数据那里可以直接保存bin文件,减少很多
留个脚印,感觉自己用的到。{:smile:} 学习了。。。。。。。。。。。。。。
页:
[1]
2