嵌入式 Linux 系统的低功耗策略研究
]
摘 要:功耗是嵌入式设备的一个十分重要的性能指标。在硬件设计和选型之后,功
耗水平在极大程度上取决于软件的设计。鉴于 Lioux 在嵌入式设备中的应用日益广泛,提
出在嵌入式 Linux 下软件编写的几种策略。通过这些软件编写方式,能有效降低最终产品
的功耗水平。
关键词:嵌入式 Linux 功耗策略
引 言
由于 Linux 系统具有嵌入式操作系统需要的很多特色,如适应于多种 CPU 和多种硬
件平台、性能稳定、可裁剪性很好、源码开放、开发和使用简单等。目前,基于 Linux 应
用的嵌入式设备日益增多,Linux 正在嵌入式领域发挥着越来越重要的作用。
对于嵌入式设备尤其是移动设备来说,功耗是系统的重要指标,系统设计的重要目标
之一就是要尽可能地降低功耗。目前,对功耗的研究主要集中在硬件解决方案上,而软件
研究方面很少。实践证明:在硬件设计和选型确定后,功耗的高低与软件设计有很大的关
联性。软件设计和编程质量的好坏,极大地影响着最终产品的功耗水平。据此,为降低功
耗,提出在嵌入式 Linux 下软件编程的几种策略。
1 问题分析
因为最终耗能的是硬件,所以在考虑采用软件方法降低功耗的时候,要充分考虑硬件
的功能和性能,即在保障系统实现的基础上如何组织硬件运作而使功耗降低。全速执行、
待机和睡眠等行为都是利用 CPU 的固有能力,透过降低工作电压或频率来节省功耗。此外,
在大多数用户察觉不到的情况下,实际的电源管理能够根据负载状况逐渐改变系统的状态,
有时这种情况在 l s 之内可以产生数百次。
另外,在编写程序时可能会遇到这样的情况,如记录状态寄存器内容,并等待设定标
记出现;检查串口的 FIFO 状态标记,看是否收到数据;监测一个双端口存储器,以确定
系统中是否有另外 CPU 写入了一个变量,以便控制共享资源。从表面上看,这样的代码没
有什么问题,但在每个时钟周期里不断记录寄存器状态把无法有效延长设备的电池寿命。
基于这些问题,下面提出几种策略,以有效降低最终产品的功耗水平。
2 利用 Linux 内核的电源管理
电源管理策略的基础是调整处理器内核的工作电压和频率。不过,现代的嵌入式 CPU
具有非常高的电源效率,以至于 CPU 并不总是最主要的耗能组件。其他高耗能的组件包括
高性能内存、显示屏和射频接口等,因此,如果电源管理系统只能调节 CPU 内核的电压和