WinCE Eboot中的OEM控制函式

2021-05-11 10:06:59 字數 2190 閱讀 2093

在eboot中有很多以oem開頭的函式,這些函式都會直接或間接的被blcommon模組呼叫,來完成相應的功能。這些oem函式就是我們需要根據自己的平台來實現的。可以說,實現了這些oem函式,eboot的功能就完成了。

在eboot中有很多oem函式,有些是必須實現的,有些是不必實現的,而有些是根據你的eboot的功能需求來決定是否要實現的。下面會介紹一下直接由blcommon呼叫的oem控制函式:

1. void oemdebuginit(void)

這應該是第乙個被呼叫的oem函式,用來初始化串列埠來列印除錯資訊。這裡要提一下另乙個函式叫oeminitdebugserial,是oal中用於初始化串列埠的函式。所以一般會實現oeminitdebugserial函式,然後在oemdebuginit中呼叫它就可以了。實際上這只是乙個初始化函式,如果想實現串列埠除錯,還需要實現另外幾個函式,如下;

oemwritedebugstring

oemwritedebugbyte

oemreaddebugbyte

上述三個函式在我以前的部落格「wince bsp中列印資訊的實現介紹」中有介紹,這裡不再重複了。

2. bool oemplatforminit(void)

這個函式用於初始化硬體平台,就是說出實話硬體板子的相關外設。一般會先初始化rtc,然後初始化nandflash控制器,初始化硬體中斷,初始化網絡卡,如果需要,還可以在這個時候初始化display,然後顯示乙個logo。下面是微軟提供的該函式的模板:

bool oemplatforminit(void)

//初始化乙太網控制器

pedbgsettings = &pbootargs->edbg;

fret          = initethernet(pedbgsettings);

if (!fret) 

pmyaddr = &pedbgsettings->adapter.addr;

edbgoutputdebugstring("info: debug ethernet mac address: %b:%b:%b:%b:%b:%b/r/n", pmyaddr->wmac[0] & 0x00ff, pmyaddr->wmac[0] >> 8,

pmyaddr->wmac[1] & 0x00ff, pmyaddr->wmac[1] >> 8,

pmyaddr->wmac[2] & 0x00ff, pmyaddr->wmac[2] >> 8);

return(true);

}3. dword oempredownload(void)

4. void oemlaunch(dword dwimagestart, dword dwimagelength, dword dwlaunchaddr, const romhdr* promhdr)

void oemlaunch(dword dwimagestart, dword dwimagelength, dword dwlaunchaddr, const romhdr *promhdr)

if (pcfgdata->flags & edbg_fl_dbgmsg)

if (pcfgdata->flags & edbg_fl_ppsh)

if (pcfgdata->flags & edbg_fl_kdbg)

memcpy(&pdriverglobals->eth.downloadhostaddr, &eshellhostaddr, sizeof(edbg_addr));

pdriverglobals->eth.etherflags    = pcfgdata->flags;

pdriverglobals->eth.kitltransport = pcfgdata->kitltransport;

} //儲存wince kernel的launch位址

if (dwlaunchaddr && (ebootcfg.nkregion.launchaddress != dwlaunchaddr))

else

// 跳轉到wince image的位址開始執行

launch(dwphyslaunchaddr);

//死迴圈

spinforever();

}

WinCE Eboot中的OEM控制函式

在eboot中有很多以oem開頭的函式,這些函式都會直接或間接的被blcommon模組呼叫,來完成相應的功能。這些oem函式就是我們需要根據自己的平台來實現的。可以說,實現了這些oem函式,eboot的功能就完成了。在eboot中有很多oem函式,有些是必須實現的,有些是不必實現的,而有些是根據你的...

WinCE Eboot中的OEM Flash函式

1.bool oemisflashaddr dword dwaddr define flash start 0 define flash length 0x02000000 bool oemisflashaddr dword dwaddr return false 2.bool oemstarter...

筆記本磁碟中OEM分割槽的使用

1 開機進入系統前,按f8,進入windows 10的高階啟動選項,選擇 修復計算機 2 選擇鍵盤輸入方法。3 如果有管理員密碼,需要輸入 如果沒有設定密碼,直接 確定 即可。4 進入系統恢復選項後,選擇 dell datasafe 還原和緊急備份 6 選擇 還原我的計算機 點選 下一步 7 選擇正...