在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 選擇正...