便攜嵌入式設(shè)備電源管理解決方案
pm_send_all ( PM_SUSPEND, ( void 3 ) 2) ; /3 外設(shè)掛起3 /
sa1110_suspend ( ) ; /3 CPU進(jìn)入休眠模式3 /
/3 CP
U醒來(lái),繼續(xù)執(zhí)行3 /
pm_send_all ( PM_RESUME, ( void 3 ) 0) ; /3 喚醒外設(shè)3 /
} break;
default:
return - EINVAL;
}
return 0;
}本文引用地址:http://www.ex-cimer.com/article/149404.htm
最后,使用命令“mknod /dev/ apm c 254 0”,可以在文件系統(tǒng)中建立起該設(shè)備的訪問(wèn)節(jié)點(diǎn)。該節(jié)點(diǎn)名為/dev/ apm,是一個(gè)字符設(shè)備(c) ,主設(shè)備號(hào)為254,此設(shè)備號(hào)為0。
用戶可以在適當(dāng)?shù)臅r(shí)候選擇是否改變CPU的時(shí)鐘頻率和顯示刷新率,是否關(guān)閉某些外部設(shè)備,是否使整個(gè)系統(tǒng)進(jìn)入睡眠模式等等。這只需要使用系統(tǒng)調(diào)用“ioctl”對(duì)電源管理設(shè)備( /dev/ apm)發(fā)送命令就可以了。
int fd;
. . .
fd = open ( /dev/ apm , O_RDONLY) ; /3 打開(kāi)電源管理設(shè)備3 /
ioctl ( fd, APM_ IOC_SUSPEND,NULL) ; /3 發(fā)送電源管理命令3 /
close ( fd) ; /3 關(guān)閉電源管理設(shè)備3 /
實(shí)現(xiàn)iPAQ電源管理前后耗電量比較
實(shí)現(xiàn)電源管理以前:開(kāi)啟LCD, CPU 處于空閑狀態(tài),大多數(shù)其他芯片關(guān)閉,功耗為470mW。實(shí)現(xiàn)電源管理以后:在電源管理前的基礎(chǔ)上開(kāi)啟SDRAM 的自動(dòng)節(jié)能模式,功耗下降到280mW。然后降低LCD刷新率到30Hz, 功耗下降到238mW。再把CPU頻率降低到57. 3MHz,功耗下降到172mW。最后關(guān)閉LCD,功耗下降到98mW。可見(jiàn),通過(guò)本文方案的調(diào)節(jié)和優(yōu)化, iPAQ的耗電量確實(shí)可以得到有效地改善,最大優(yōu)化后的耗電量?jī)H為優(yōu)化前的五分之一,從而大大提高了iPAQ的電池使用時(shí)間。
結(jié)論
在嵌入式設(shè)備中,電源管理是一個(gè)硬件和軟件相結(jié)合的系統(tǒng)工程。本文介紹了已有的節(jié)能方法和Linux電源管理的機(jī)制, 并且以iPAQ 為例通過(guò)Linux的電源管理機(jī)制和上層應(yīng)用軟件,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)較完整和有效的電源管理方案,為眾多基于Linux系統(tǒng)的嵌入式設(shè)備的電源管理提供了一個(gè)有用的參考。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論