是不是对以后的维护会节约很多时间?

[复制链接]
 楼主| heweibig 发表于 2015-11-30 20:38 | 显示全部楼层 |阅读模式
最近在做超低低功耗产品,由于接手时程序基本完成,是用汇编编写的,程序的修改和维护很复杂,持续修改中,可是感觉问题越改越多;现在考虑要用C语言重写一下,是不是对以后的维护会节约很多时间?
zhaoxqi 发表于 2015-11-30 20:38 | 显示全部楼层
遇到什么问题啦
 楼主| heweibig 发表于 2015-11-30 20:38 | 显示全部楼层
汇编语言的功耗会节约很多,现在汇编语言对寄存器都赋值变量,用c语言每次都要在变量空间调入寄存器,很难直接在寄存器调用,这样感觉功耗就会增加一些。
zhaoxqi 发表于 2015-11-30 20:38 | 显示全部楼层
这个。。不知道C语言比汇编会增加功耗吗?会增加多少?
jiahy 发表于 2015-11-30 20:39 | 显示全部楼层
C语言对端口控制能不能达到汇编语言的简洁程度?
zhaoxqi 发表于 2015-11-30 20:39 | 显示全部楼层
是啊,因为现在对功能的要求基本要做到一个指令一个指令来控制。
liliang9554 发表于 2015-11-30 20:39 | 显示全部楼层
功耗和使用汇编、C语言关系不大,汇编的优势是控制时序比较容易。
wyjie 发表于 2015-11-30 20:41 | 显示全部楼层
功耗和使用汇编、C语言关系不大,与内部启动的功能模块和硬件电路有很大关系,低功耗睡眠时需注意对IO口的处理,漏电流对功耗影响很大,看楼主做什么产品,超低功耗我折腾了半年。
jlyuan 发表于 2015-11-30 20:41 | 显示全部楼层
电路功耗,和汇编,c 没多少大关系,还是硬件电路的关系,楼主不要担心
yszong 发表于 2015-11-30 20:42 | 显示全部楼层
C语言跟编译器的关系很大 熟悉编译器特性后 编译出来的代码效率也很高
spark周 发表于 2015-11-30 20:42 | 显示全部楼层
如大家所说功耗与语言无关,但是如楼主所说,使用汇编与使用C功耗肯定不一样,C语言编译出的代码,大多通过pc指针偏移来取数,直接对寄存器的操作肯定比通过ldr str指令功耗低,ARM的IQ杂志有一期的一篇**专门讲了这方面的分析。
yszong 发表于 2015-11-30 20:42 | 显示全部楼层
如果使用的外设一样,程序到底多省电就看执行的代码的时间和待机的时间各占多少,想看汇编能多省多少电,就看汇编的程序,比C编译出来的,每秒少执行的指令的条数。
yszong 发表于 2015-11-30 20:42 | 显示全部楼层
我一直用汇编,这个问题还真没考虑过
午夜粪车 发表于 2015-11-30 20:42 | 显示全部楼层
不过怎么会在持续修改中感觉问题越改越多呢?把整个程序改用c的话不是更麻烦?
zhaoxqi 发表于 2015-11-30 20:43 | 显示全部楼层

汇编比C语言,
由于可读性的差别,
在维护方面要吃力些!
 楼主| heweibig 发表于 2015-11-30 20:43 | 显示全部楼层
哦,我知道了,多谢大家
dengdc 发表于 2015-11-30 20:43 | 显示全部楼层
汇编语言比c语言会快些,而c语言比汇编可读性强些
jlyuan 发表于 2015-11-30 20:43 | 显示全部楼层
同样的功能,C的指令条数远多于汇编撒,因此对相同的功能来说C的功耗要高;同样时间段,执行的指令条数差不多,所以对相同时间段内来说,功耗基本差不多;还有汇编写程序可以充分利用内部寄存器,而C的话开放给C编译器层面的寄存器就那么几个,而访问寄存器要比访问RAM功耗低
dengdc 发表于 2015-11-30 20:44 | 显示全部楼层
一般来说,实现相同的功能,汇编运行时间比C少,消耗的功耗要少一点,但是从低功耗产品的经验来看,运行功耗仅占总功耗的一小部分,更多时候MCU处于待机状态,这时候汇编不汇编就没有什么意义了。所以基本结论是——用C不会增加显著的功耗。
wyjie 发表于 2015-11-30 20:44 | 显示全部楼层

汇编编程效率低,但运行效率高,C与此相反
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部