打印

都有哪些方法降低软件功耗啊

[复制链接]
852|17
手机看帖
扫描二维码
随时随地手机跟帖
沙发
wuhany| | 2015-11-15 11:06 | 只看该作者
用查表的方法代替实时的计算,尽量减少CPU的运算量。特别是在没有硬件浮点处理单元的MCU进行浮点处理时,直接用MCU进行浮点处理将会消耗大量的时间。将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗。很多微处理器都有快速有效的查表指令和寻址方式,用于优化查表算法,这种处理方法在离散余弦变换和AD数据采集中能够了带来可观的效率提升。

使用特权

评论回复
板凳
jiajs| | 2015-11-15 11:07 | 只看该作者
对于不可避免的实时计算,应注意计算的精度,算到精度够了就应立即结束,避免“过度”的计算。在精度允许的情况下,使用简单函数代替复杂函作近似运算,也是减少功耗的有效方法

使用特权

评论回复
地板
zhenykun| | 2015-11-15 11:07 | 只看该作者
尽量使用短的数据类型,如尽量使用字符型的8位数据代替16位的整型数据。

使用特权

评论回复
5
zhenykun| | 2015-11-15 11:07 | 只看该作者
还有就是尽量使用分数运算而避免浮点运算

使用特权

评论回复
6
jiajs| | 2015-11-15 11:07 | 只看该作者
用移位运算代替乘除运算。采用MCU计算乘除也是非常耗时的,如果采用左移和右移的办法来实现乘除法运算,将会减少运算时间,注意,除法的移位计算只能针对除数比较特殊的情况。

使用特权

评论回复
7
wyjie| | 2015-11-15 11:07 | 只看该作者
采用快速算法。在搜索算法中,使用二分搜索法和分段查找算法的效率是不同的,从理论上可以估算,在1024个测量值的查找中,二分搜索最坏情况下10将可以查找到结果,顺序搜索最坏可能需要1024次。这在测量数值更多的情况下更为突出,一个高效率的查找算法有助于减少程序的运行功耗。

使用特权

评论回复
8
jlyuan| | 2015-11-15 11:08 | 只看该作者
数字信号处理中的运算,采用FFT和快速卷积等,可以节省大量运算时间

使用特权

评论回复
9
jlyuan| | 2015-11-15 11:08 | 只看该作者
一个程序使用中断方式还是查询方式,对于很多应用来说并不是那么重要,但在软件低功耗设计特性上却相差甚远。能用中断就用中断,不要用采询方式

使用特权

评论回复
10
jiajs| | 2015-11-15 11:08 | 只看该作者
采用定时器,在程序中可以采用软件延时,但是,如果系统的定时器资源充裕,在需要定时的场合,最好采用硬件定时器,当定时器到定时后,向MCU发出中断请求信号。

使用特权

评论回复
11
yszong| | 2015-11-15 11:08 | 只看该作者
用宏代替子程序。在程序执行过程中,读RAM需要比读Flash更大的功耗,宏是在编译器预处里阶段进行替代,而在子程序的调用中MCU需要进行现场保护。在一次子程序调用中,因为CPU进入子程序时会首先将当前的CPU寄存器压栈,返回时出栈,这样最少有两次的RAM操作。对于程序设计来说,调用一个子程序还是一个宏,在程序写法上并没有什么不同,但宏会在编译时展开,CPU只是顺序执行指令,避免了调用子程序,唯一的问题是增加了代码的长度(代码量)。但现在的单片机的Flash一般都够用。

使用特权

评论回复
12
yszong| | 2015-11-15 11:08 | 只看该作者
总的指导思想就是让cpu少工作,多休眠。

使用特权

评论回复
13
heweibig| | 2015-11-15 11:09 | 只看该作者
精简代码,减少执行代码指令,让cpu完成相同的工作执行更少的代码,降低功耗

使用特权

评论回复
14
dengdc|  楼主 | 2015-11-15 11:09 | 只看该作者

哦,经验好多啊,我总结一下,多谢大家了

使用特权

评论回复
15
heweibig| | 2015-11-15 11:09 | 只看该作者
你是说执行的次数吗?

使用特权

评论回复
16
wuhany| | 2015-11-15 11:09 | 只看该作者
使用汇编语言还可以的。

使用特权

评论回复
17
尤彼卡| | 2015-11-15 21:14 | 只看该作者
将运算的结果预先算好,放在Flash中,尽量减少CPU的运算工作量

使用特权

评论回复
18
STM32初学者| | 2015-11-15 23:03 | 只看该作者
软件功耗,软件有什么功耗呢?

使用特权

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

本版积分规则

892

主题

13885

帖子

7

粉丝