wince6 0 電源管理 遇到 問題與解決

2021-08-25 23:37:57 字數 1189 閱讀 2751

1.在做wince6.0 電源管理的時候 無法呼叫到 oempoweroff()這個函式,搞我一天時間沒想到是因為實現xip所以沒呼叫到 先解決方法如下

說起來很簡單吧:因為用的是multi-bin,沒有將gwes.dll、devmgr.dll、servicesenum.dll、servicesd.exe、services.exe放到xip中,儘管不影響啟動但是影響核心對oempoweroff的呼叫

2. wince6.0 時候呼叫setsystempowerstate() 這個函式的時候出現 vmprocesspagefault error: page fault occurred while in power handler! address = 0x40304228

這個問題 引起這個問題的起因還是 xip 下面是解決方法

ce6.0在使用multi-bin的時候執行suspend如果出現vmprocesspagefault error: page fault occurred while in power handler! address = 0x40314228且不能suspend成功,只需要在config.bib中將romflags的最低位置1,這樣suspend的時候系統就不會去做page out,也就不會有vmprocesspagefault error。

根據查詢資料,如果驅動的powerdown函式中沒有呼叫系統的api也不會出現這樣的問題。

; romflags is a bitmask of options for the kernel

; romflags 0x0001 disallow paging

; romflags 0x0002 not all kmode

; romflags 0x0010 trust module only

setsystempowerstate()的使用方法:

#include "pm.h"

setsystempowerstate(null,power_state_off,power_force);

3. 休眠後喚醒後 系統正常恢復 但是 lcd 沒有正常恢復

剛開始bsppoweron 中加入了 lcd_spi_init() 重新初始化了 lcd lcd在喚醒後 正常顯示但是 螢幕的資料沒有更新(需解決)

最近在調wince6 0的電源管理

在platform.reg裡對timerout賦值成零,發現生成的登錄檔是更新了,但是值沒有起作用。在common.reg裡對timerout賦值成零,可以生效。感覺還是很奇怪。最後再網上查詢了,發現pm正常啟動讀到的是預設值,沒有讀取到登錄檔的值。說明 wince 的電源管理module就是pm....

winCE6 0 學習筆記之記憶體管理

wince 6.0 是乙個32 位的作業系統,提供了 4gb的虛擬位址空間,其中系統核心使用高區的 2gb,使用者程序使用低區的 2gb。我們的記憶體管理單元 memory management unit 用來管理虛擬記憶體和實際物理記憶體的對映。在wince 6.0 中,虛擬記憶體的頁面有三種情況...

winCE6 0中文定製亂碼問題

1.project的屬性裡設定好 中文 中國 2.如不選擇core os cebase international locale specific support chinese simplified fonts simsun nsimsun choose 1 simsun nsimsun,則進入w...