1. bool oemisflashaddr(dword dwaddr)
#define flash_start 0
#define flash_length 0x02000000
bool oemisflashaddr(dword dwaddr)
return(false); }
2. bool oemstarteraseflash(dword dwstartaddr, dword dwlength)
該函式用於初始化flash的擦除,dwstartaddr表示要擦除的起始位址,dwlength為長度。通過這兩個引數計算flash中要被擦除的起始block和最後乙個block,以及要擦除多少個block,給個微軟的例子:
bool oemstarteraseflash (dword dwstartaddr, dword dwlength)
//確認該起始位址是block對齊的
if (dwstartaddr % flash_block_size)
//確認長度是4位元組對齊
if (dwlength & 0x03)
//根據flash的基位址和flash的block大小計算要擦除的起始block和最後乙個
//block以及多少個block
gnstartblock = (dwstartaddr - flash_base) / flash_block_size;
gnendblock = ((dwstartaddr + dwlength + (flash_block_size - 1) - flash_base) / flash_block_size);
gnblocks = (int)(gnendblock - gnstartblock);
gnblockcount = gnstartblock;
edbgoutputdebugstring("erasing flash blocks: start block = %d end block = %d/r/n", gnstartblock, gnendblock);
return(true); }
3. void oemcontinueeraseflash (void)
void oemcontinueeraseflash(void)
++gnblockcount;
--nerasecount;
} return; }
4. bool oemfinisheraseflash (void)
該函式用於確認flash中所有的block都被擦除完成,給個微軟的例子:
bool oemfinisheraseflash(void)
return(true); }
5. bool oemwriteflash(dword dwimagestart, dword dwimagelength)
bool oemwriteflash(dword dwimagestart, dword dwimagelength)
//確認起始位址是block位元組對齊的
if (dwimagestart % flash_block_size)
//計算要寫入的block數量
nnumblocks = (uchar)(dwimagelength / flash_block_size);
dwextrabytes = (dwimagelength % flash_block_size);
dwflashaddr = dwimagestart;
pbcache = oemmapmemaddr (dwimagestart, dwflashaddr);
//寫flash
while(nnumblocks)
dwflashaddr += flash_block_size;
pbcache = oemmapmemaddr (dwimagestart, dwflashaddr);
--nnumblocks;
} //將額外的資料寫入flash中
if (dwextrabytes) }
return(true); }
上面的5個函式用於在eboot中支援flash操作功能。一般在開發bsp的時候,如果需要在eboot中實現flash的功能,會在eboot中建立乙個flash.c檔案,在該檔案中實現上述這些函式。建議看看blcommon.c中的downloadimage函式,可以幫助理解。
WinCE Eboot中的OEM控制函式
在eboot中有很多以oem開頭的函式,這些函式都會直接或間接的被blcommon模組呼叫,來完成相應的功能。這些oem函式就是我們需要根據自己的平台來實現的。可以說,實現了這些oem函式,eboot的功能就完成了。在eboot中有很多oem函式,有些是必須實現的,有些是不必實現的,而有些是根據你的...
WinCE Eboot中的OEM控制函式
在eboot中有很多以oem開頭的函式,這些函式都會直接或間接的被blcommon模組呼叫,來完成相應的功能。這些oem函式就是我們需要根據自己的平台來實現的。可以說,實現了這些oem函式,eboot的功能就完成了。在eboot中有很多oem函式,有些是必須實現的,有些是不必實現的,而有些是根據你的...
筆記本磁碟中OEM分割槽的使用
1 開機進入系統前,按f8,進入windows 10的高階啟動選項,選擇 修復計算機 2 選擇鍵盤輸入方法。3 如果有管理員密碼,需要輸入 如果沒有設定密碼,直接 確定 即可。4 進入系統恢復選項後,選擇 dell datasafe 還原和緊急備份 6 選擇 還原我的計算機 點選 下一步 7 選擇正...