嗨我是k66,本系列文到了尾聲,為了有始有終,本篇會先看漫畫主角們最後結局。接著再帶讀者回顧這28天實作內容,最後再介紹一些寫UEFI程式時常見錯誤及如何debug。
回顧所學
以下為文字版,漫畫版請點此
- Day2:
1.開機畫面轉圈圈: CPU與OS控制權的轉換
2.開機過程控制權轉移: Bootloader->kernel->OS
3.boot menu(Linux)
4.boot menu(macOS)
5.boot menu(Windows)
6.豬油博士: Windows最霸道!我們的bootloader可以學它!
- Day3:
豬油博士: 第一支OinkBL.asm->Oink.bin
- Day4:
1.豬油博士: OinkBL.bin在QEMU上執行成功!
2.Oink: 這支OinkBL.bin不能在實體機上運行怎辦?
3.豬油博士: 寫UEFI!
- Day5:
1.豬油博士介紹UEFI開機七階
2.豬油博士介紹簡化後的三階
- Day6-Day7:
手把手超詳細安裝過程
- Day8:
第一支efi
- Day9:
1.博士介紹超詳細Modue、Package
2.博士介紹超詳細INF、DSC、DEC
- Day10:
介紹三種UEFI APPLICATION
- Day11:
設計OinkBL開機畫面
Day12以後正式實作開機畫面
- Day12-13:
1.設定螢幕解析度
2.畫紅色矩形
- Day14-Day15:
畫Logo但會跑版
- Day16:
解決Logo跑板問題
- Day17:
提供第二種畫Logo方法
- Day18:
顯示系統時間
- Day19:
按ESC退出
- Day20:
豬油博士介紹kernel開發原理
- Day21:
1.Kernel.asm->Kernel.bin
2.Kernel.c與Kernel.bin連結
- Day22:
OinkBootMenu.c
- Day23:
將OinkBL.c與kernel.c連結
- Day24:
開機畫面成形!
- Day25:
把之前寫的c檔案合併至Entry.c
- Day26:
在開機選單加入之前寫的螢幕解析度
- Day27:
來寫個UEFI小遊戲吧!
UEFI程式報錯與debug
代碼 |
問題描述 |
解法 |
7000 |
namke.exe沒裝好 |
更正之 |
7000 |
inf的EntryPoint設錯 |
更正之 |
7000 |
c程式存在compile error |
單元測試 |
4000 |
缺library class [LibStudio] |
通常找不到是錯字,需在inf內更正之 |
7000和F002 |
已初始化區域變數,但並未參考 |
表示變數被宣告但未使用,解法是使用之。 |
1005 |
Not support [xx.inf] Please select one of: all genc genmake modules libraries fds clean cleanall cleanlib run |
通常是k66run1.bat或edk2setup.bat沒執行 |
今天回顧所學與介紹常見程式報錯,明天會介紹名詞與後續規劃,我們明天見!