打印

C语言与汇编的效率与功耗相比

[复制链接]
4046|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2013-4-26 21:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhaoxqi| | 2013-4-26 21:48 | 只看该作者
遇到什么问题啦

使用特权

评论回复
板凳
heweibig|  楼主 | 2013-4-26 21:50 | 只看该作者
汇编语言的功耗会节约很多,现在汇编语言对寄存器都赋值变量,用c语言每次都要在变量空间调入寄存器,很难直接在寄存器调用,这样感觉功耗就会增加一些。

使用特权

评论回复
地板
zhaoxqi| | 2013-4-26 21:51 | 只看该作者
这个。。不知道C语言比汇编会增加功耗吗?会增加多少?

使用特权

评论回复
5
jiahy| | 2013-4-26 21:55 | 只看该作者
C语言对端口控制能不能达到汇编语言的简洁程度?

使用特权

评论回复
6
zhaoxqi| | 2013-4-26 21:55 | 只看该作者
是啊,因为现在对功能的要求基本要做到一个指令一个指令来控制。

使用特权

评论回复
7
liliang9554| | 2013-4-26 22:12 | 只看该作者
功耗和使用汇编、C语言关系不大,汇编的优势是控制时序比较容易。

使用特权

评论回复
8
wyjie| | 2013-4-26 22:12 | 只看该作者
功耗和使用汇编、C语言关系不大,与内部启动的功能模块和硬件电路有很大关系,低功耗睡眠时需注意对IO口的处理,漏电流对功耗影响很大,看楼主做什么产品,超低功耗我折腾了半年。

使用特权

评论回复
9
jlyuan| | 2013-4-26 22:13 | 只看该作者
电路功耗,和汇编,c 没多少大关系,还是硬件电路的关系,楼主不要担心

使用特权

评论回复
10
yszong| | 2013-4-26 22:14 | 只看该作者
C语言跟编译器的关系很大 熟悉编译器特性后 编译出来的代码效率也很高

使用特权

评论回复
11
spark周| | 2013-4-26 22:15 | 只看该作者
如大家所说功耗与语言无关,但是如楼主所说,使用汇编与使用C功耗肯定不一样,C语言编译出的代码,大多通过pc指针偏移来取数,直接对寄存器的操作肯定比通过ldr str指令功耗低,ARM的IQ杂志有一期的一篇**专门讲了这方面的分析。

使用特权

评论回复
12
yszong| | 2013-4-26 22:15 | 只看该作者
如果使用的外设一样,程序到底多省电就看执行的代码的时间和待机的时间各占多少,想看汇编能多省多少电,就看汇编的程序,比C编译出来的,每秒少执行的指令的条数。

使用特权

评论回复
13
午夜粪车| | 2013-4-26 22:16 | 只看该作者
我一直用汇编,这个问题还真没考虑过

使用特权

评论回复
14
午夜粪车| | 2013-4-26 22:16 | 只看该作者

不过怎么会在持续修改中感觉问题越改越多呢?把整个程序改用c的话不是更麻烦?

使用特权

评论回复
15
zhaoxqi| | 2013-4-26 22:17 | 只看该作者
汇编比C语言,
由于可读性的差别,
在维护方面要吃力些!

使用特权

评论回复
16
heweibig|  楼主 | 2013-4-26 22:18 | 只看该作者
哦,我知道了,多谢大家

使用特权

评论回复
17
heweibig|  楼主 | 2013-4-26 22:26 | 只看该作者
结贴了,大家晚安啊

使用特权

评论回复
18
leadman| | 2013-4-26 23:07 | 只看该作者
汇编语言比c语言会快些,而c语言比汇编可读性强些

使用特权

评论回复
19
zhaofy521| | 2013-4-27 09:12 | 只看该作者
同样的功能,C的指令条数远多于汇编撒,因此对相同的功能来说C的功耗要高;同样时间段,执行的指令条数差不多,所以对相同时间段内来说,功耗基本差不多;还有汇编写程序可以充分利用内部寄存器,而C的话开放给C编译器层面的寄存器就那么几个,而访问寄存器要比访问RAM功耗低

使用特权

评论回复
20
江枫渔火| | 2013-4-27 10:23 | 只看该作者
这他妈是个蛋疼的命题。与其纠结在此,不如在业务流程上去降低功耗。
对寄存器操作1次跟1000次,都是纳,微秒级的事,能为你节省多少功耗?
你的时钟依然是每秒转那么多下,
如果你的工程将来要改,要换代,升级,你蛋疼的感觉会更强烈,

如果你已经用尽了其他一切办法节省功耗,还无法满足你黑洞般的欲望和追求,你考虑汇编和C语言的差别,情有可原。

选择低功耗特长的芯片,如TI的 430,使用芯片的低功耗模式,在运算量低的时候,闲置CPU。uA级的功耗还不足以?

如果整个系统来看,消耗功率的有没有其他部件?可能动则比CPU功耗大几十上百倍。

使用特权

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

本版积分规则

869

主题

13089

帖子

7

粉丝