3547|3

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教C语言与汇编的效率与功耗? [复制链接]

最近在做超低低功耗产品,由于接手时程序基本完成,是用汇编编写的,程序的修改和维护很复杂,持续修改中,可是感觉问题越改越多;现在考虑要用C语言重写一下,对以后的维护会节约很多时间,可是现在摆在面前有几个问题,不知道大家有没有了解的。
   1、汇编语言的功耗会节约很多,现在汇编语言对寄存器都赋值变量,用c语言每次都要在变量空间调入寄存器,很难直接在寄存器调用,这样感觉功耗就会增加一些。
   2、C语言比汇编会增加功耗吗?会增加多少?
   3、C语言对端口控制能不能达到汇编语言的简洁程度?因为现在对功能的要求基本要做到一个指令一个指令来控制。
   现在工程对时间要求也很严格,真的不知道能不能按时修改完,如果换c语言如果功耗上去了,这样更没法交差,很痛苦。请用过的高手给个建议。

最新回复

其实我个人觉得,除了对代码执行效率非常苛刻的场合,如一些算法之类的使用汇编,其他场合使用C语言更好,主要是代码更简洁,移植性更好。好的C代码,其反汇编也不会比汇编多太多。另外,低功耗是uA/MHZ为单位,相信使用汇编代码的节省的代码执行指令,不会产生多少低功耗的优势。  详情 回复 发表于 2012-1-3 23:44
 
点赞 关注

回复
举报

48

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
C语言影响功耗的地方在于,它编译出来的指令数量更多 ,导致CPU执行了更多的指令,因此就耗费更多的能量。鉴于此,楼主可以采用如下的方法做尝试:
1.采用效率高的编译器,并设置为对速度进行最优化,而不是对空间占用最优化;
2.自己写代码的时候,也要有意识的以牺牲空间的方式来换取速度;
至于其它的什么降低工作频率、降低工作电压、在程序中添加功率管理功能等,相信楼主已经是做好了的。
至于C语言比汇编的效率低多少,是无法得出结论的。编译器不同,优化等级不同,代码的作者不同,都会得出不同的结论。因此,楼主需要做的就是通过实际的测试。想来做了最大优化后,应该不会差多少。楼主可以测试。
 
 

回复

188

帖子

0

TA的资源

纯净的硅(中级)

板凳
 

回复 楼主 zengbo84 的帖子

其实我个人觉得,除了对代码执行效率非常苛刻的场合,如一些算法之类的使用汇编,其他场合使用C语言更好,主要是代码更简洁,移植性更好。好的C代码,其反汇编也不会比汇编多太多。另外,低功耗是uA/MHZ为单位,相信使用汇编代码的节省的代码执行指令,不会产生多少低功耗的优势。
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

4
 
谢谢大家的回复
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表