[应用相关]

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

[复制链接]
1173|45
手机看帖
扫描二维码
随时随地手机跟帖
happy_10|  楼主 | 2019-9-14 13:48 | 显示全部楼层 |阅读模式
都有哪些方法降低软件功耗啊?

使用特权

评论回复
stly| | 2019-9-14 13:53 | 显示全部楼层

软件功耗?

使用特权

评论回复
dingy| | 2019-9-14 13:56 | 显示全部楼层
用查表的方法代替实时的计算,尽量减少CPU的运算量。特别是在没有硬件浮点处理单元的MCU进行浮点处理时,直接用MCU进行浮点处理将会消耗大量的时间。

使用特权

评论回复
stly| | 2019-9-14 13:59 | 显示全部楼层
将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗。

使用特权

评论回复
stly| | 2019-9-14 14:01 | 显示全部楼层

很多微处理器都有快速有效的查表指令和寻址方式,用于优化查表算法,这种处理方法在离散余弦变换和AD数据采集中能够了带来可观的效率提升。

使用特权

评论回复
renyaq| | 2019-9-14 14:04 | 显示全部楼层
对于不可避免的实时计算,应注意计算的精度,算到精度够了就应立即结束,避免“过度”的计算。

使用特权

评论回复
stly| | 2019-9-14 14:07 | 显示全部楼层
在精度允许的情况下,使用简单函数代替复杂函作近似运算,也是减少功耗的有效方法。。

使用特权

评论回复
supernan| | 2019-9-14 14:10 | 显示全部楼层
尽量使用字符型的8位数据代替16位的整型数据。

使用特权

评论回复
stly| | 2019-9-14 14:15 | 显示全部楼层
尽量使用分数运算而避免浮点运算

使用特权

评论回复
liuzaiy| | 2019-9-14 14:18 | 显示全部楼层
可以用移位运算代替乘除运算。

使用特权

评论回复
pengf| | 2019-9-14 14:21 | 显示全部楼层
采用MCU计算乘除也是非常耗时的,如果采用左移和右移的办法来实现乘除法运算,将会减少运算时间,注意,除法的移位计算只能针对除数比较特殊的情况。

使用特权

评论回复
ousj| | 2019-9-14 14:24 | 显示全部楼层
数字信号处理中的运算,采用FFT和快速卷积等,可以节省大量运算时间。

使用特权

评论回复
stly| | 2019-9-14 14:27 | 显示全部楼层
一个程序使用中断方式还是查询方式,对于很多应用来说并不是那么重要,但在软件低功耗设计特性上却相差甚远。

使用特权

评论回复
ousj| | 2019-9-14 14:36 | 显示全部楼层
采用定时器,在程序中可以采用软件延时,但是,如果系统的定时器资源充裕,在需要定时的场合,最好采用硬件定时器,当定时器到定时后,向MCU发出中断请求信号。

使用特权

评论回复
chuxh| | 2019-9-14 14:38 | 显示全部楼层

你是说执行的次数吗?使用汇编语言还可以的。

使用特权

评论回复
ousj| | 2019-9-14 14:41 | 显示全部楼层
将运算的结果预先算好,放在Flash中,尽量减少CPU的运算工作量

使用特权

评论回复
stly| | 2019-9-14 14:44 | 显示全部楼层
软件功耗,软件有什么功耗呢?

使用特权

评论回复
ousj| | 2019-9-14 14:49 | 显示全部楼层

尽量降低器件的工作频率。。。。

使用特权

评论回复
pangb| | 2019-9-14 14:52 | 显示全部楼层

从MCU选型开始

使用特权

评论回复
kangzj| | 2019-9-14 14:55 | 显示全部楼层
IO为高电平是上拉电阻不费电

使用特权

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

本版积分规则

744

主题

7973

帖子

6

粉丝