2017年8月23日 星期三

UEFI Application 小小心得

如果有人像我這麼苦命,不是做 BIOS 卻要在 UEFI Shell 開發 Application,強烈建議都用 C 形式去寫,也就是 int main(void),這樣的好處是有些 open source 的 C library 比較容易 porting 到 UEFI 下使用。

相反的,當你寫好的 code,如果反過來想要 porting 回 Windows or Linux 下,也是非常容易。

只要你在寫的時候,把 define 定義好,以總行數約 1500 的 code 來說,可能只要增加幾個 define 就可以讓同樣的 code 在 UEFI 和其他 OS 都通吃,花費的時間可能也不會超過 20 分鐘,甚至 Windows 和 UEFI 用不同的 compiler 也是無痛接軌。

不過今天早上第一次嘗試的時候,還是撞了一下牆,但是搞定後,心情只有一個字 "爽" 可以形容,連日來的不快也隨著 "爽" 而煙消雲散了。

define 示意圖

void mySleep(int retrySleepSecs)
{
#ifdef WINDOWS_PC
        Sleep(retrySleepSecs * 1000);
#else
        sleep(retrySleepSecs);
#endif // WINDOWS_PC
}

沒有留言:

張貼留言