便携嵌入式设备电源管理解决方案
pm_send_all ( PM_SUSPEND, ( void 3 ) 2) ; /3 外设挂起3 /
sa1110_suspend ( ) ; /3 CPU进入休眠模式3 /
/3 CP
U醒来,继续执行3 /
pm_send_all ( PM_RESUME, ( void 3 ) 0) ; /3 唤醒外设3 /
} break;
default:
return - EINVAL;
}
return 0;
}本文引用地址:https://www.eepw.com.cn/article/149404.htm
最后,使用命令“mknod /dev/ apm c 254 0”,可以在文件系统中建立起该设备的访问节点。该节点名为/dev/ apm,是一个字符设备(c) ,主设备号为254,此设备号为0。
用户可以在适当的时候选择是否改变CPU的时钟频率和显示刷新率,是否关闭某些外部设备,是否使整个系统进入睡眠模式等等。这只需要使用系统调用“ioctl”对电源管理设备( /dev/ apm)发送命令就可以了。
int fd;
. . .
fd = open ( /dev/ apm , O_RDONLY) ; /3 打开电源管理设备3 /
ioctl ( fd, APM_ IOC_SUSPEND,NULL) ; /3 发送电源管理命令3 /
close ( fd) ; /3 关闭电源管理设备3 /
实现iPAQ电源管理前后耗电量比较
实现电源管理以前:开启LCD, CPU 处于空闲状态,大多数其他芯片关闭,功耗为470mW。实现电源管理以后:在电源管理前的基础上开启SDRAM 的自动节能模式,功耗下降到280mW。然后降低LCD刷新率到30Hz, 功耗下降到238mW。再把CPU频率降低到57. 3MHz,功耗下降到172mW。最后关闭LCD,功耗下降到98mW。可见,通过本文方案的调节和优化, iPAQ的耗电量确实可以得到有效地改善,最大优化后的耗电量仅为优化前的五分之一,从而大大提高了iPAQ的电池使用时间。
结论
在嵌入式设备中,电源管理是一个硬件和软件相结合的系统工程。本文介绍了已有的节能方法和Linux电源管理的机制, 并且以iPAQ 为例通过Linux的电源管理机制和上层应用软件,设计和实现了一个较完整和有效的电源管理方案,为众多基于Linux系统的嵌入式设备的电源管理提供了一个有用的参考。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论