7078|14

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎样减小bin(hex)文件的体积 [复制链接]

用C语言编写一个运行在微处理器上的程序,ROM空间有限。从C语言层面上,该采取什么样的措施,才能减小可执行文件的体积。比如说,该用什么运算符(语句),而不该用什么运算符(语句)。越详细越好!

最新回复

学习了  详情 回复 发表于 2010-3-16 17:18
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看看有没有优化等级的选择,选择高一点,代码会小一点。
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我用的是gcc编译器,可执行文件运行在mips处理器上
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个!!!
代码越少越好??????
帮顶了,我也学习下!!!!!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
优化算法,这里就看出数学功底的重要性了,很多臃肿的模型,经过数学优化或简化,可以演变出更简洁方便的算法,最典型的例子就是高斯算法的运用。另外还有各种复杂数学运算的简化函数集,比如在预定可以接受的误差下,调用一些经过优化的计算函数。自己写也是可以的,例如用移位和加减来代替乘除(这个一般是最后手段了……)
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
这个比较难了的,有些时候简化又很容易出错的,经验很重要,学好数学是很重要。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
我觉得就是算法问题了 减少ROM空间 就是通过算法调整去做
如果是减少RAM嘿嘿 我觉得就是多用查表
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

8
 
优化程序,尽量减少代码,也可以考虑换个空间大点的处理器
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

9
 
用汇编编程 产生的可执行文件会小点  
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 
要知道c到汇编的转换!例如在c中多用--少用++来判断一个数值等。因为汇编中有相应的判断减的指令!
其余的你多想想吧!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
1.
将GCC的优化设置为-O2,如果是用ADS编译选用空间优化方式,但这么做如果你对优化没有足够经验的话容易形成优化错误,也就是本来你写的代码没有错,但是优化结果是错误的,开了编译器优化功能后程序会不好跟踪调试。

2.
现在GCC编译器非常厉害,就是编程技能到了一定地步的程序员写出的汇编也不一定有GCC编译器编译出来的代码效率高,因为大多数嵌入式程序员都难吃透嵌入式MCU的汇编指令,而GCC编译器可以选用最有效的汇编指令。

3.
自己留意C代码的结构,减少冗余代码,这需要你在程序的编写当中逐步积累经验,很难一蹴而就.

 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
(1)减少开大容量的数组,尽量使用共享内存。
(2)全局变量的大小要控制,尤其是静态的。
(3)减少大规模常量的使用,如字库等,可选择使用字库芯片。
。。。。。。。。。。。。。。
太多了,楼主还是自己去积累吧,像有一些地方如:屏蔽掉不适用的代码,合理利用预编译指令等,不同的编译器有不同的处理方式,还得自己摸索。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

13
 
lz的问题太大了,我个人觉得,有可能是你的设计问题了,除了NP之类的东西很少有代码空间不够的情况,优化代价太高,不如更换软、硬件设计,设计层面的问题再怎么优化也不能从本质上解决问题的
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 aaassd_cn 的回复:
lz的问题太大了,我个人觉得,有可能是你的设计问题了,除了NP之类的东西很少有代码空间不够的情况,优化代价太高,不如更换软、硬件设计,设计层面的问题再怎么优化也不能从本质上解决问题的

同感~
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 10 楼 sj_dai 的回复:
1.
将GCC的优化设置为-O2,如果是用ADS编译选用空间优化方式,但这么做如果你对优化没有足够经验的话容易形成优化错误,也就是本来你写的代码没有错,但是优化结果是错误的,开了编译器优化功能后程序会不好跟踪调试。

2.
现在GCC编译器非常厉害,就是编程技能到了一定地步的程序员写出的汇编也不一定有GCC编译器编译出来的代码效率高,因为大多数嵌入式程序员都难吃透嵌入式MCU的汇编指令,而……
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表