2011年10月17日 星期一

[筆記] Windows CE eboot 裡自己加選單

我改的是 FreeScale 的 BSP, 因為 eboot 選單會隨著每種 BSP 的不同而自訂出不一樣的功能, FreeScale i.MX35 裡的是在:
C:\WINCE600\PLATFORM\iMX35-3DS-PDK1_7\SRC\BOOTLOADER\EBOOT\menu.c
中, 語法大概是這樣:

BOOL BLrescure_cmd(BLMENU_ITEM *pMenu);

#define MENUrescure { L'A', L"rescure from SD", BLrescure_cmd, 0, 0, 0 }
#define SocMenu MENUrescure, Null_Menu
#define MainMenu { CommonMenu, SocMenu }
// Local Variables
static BLMENU_ITEM g_menu[] = MainMenu;

基本上 g_menu 裡擺的全是 BOOL (BLMENU_ITEM*) 的 function pointer, 而擺進去的 function 就自己在外面另開 .c 去 implement 就可以, 只是要留意一下各家 BSP 對 BLmenu() 的處理手法都不太一樣, 隨著 return 值的不同, 有的還可以跳回選單, 有的就直接跳去開機.

沒有留言: