最近基於UEF在寫代碼的時候,發現因爲粗心老是出現不少問題,並且都是一些小問題。雖然UEFI玩了挺久,可是也沒梳理一下思路。藉此機會整理一下:編程
UEFI對複雜的BIOS代碼作了很好的封裝和模塊化。 並且UEFI的標準庫函數也十分豐富,多數狀況下須要跨模塊調用各類豐富的庫函數來進行功能開發,這其中重點是瞭解整個代碼的框架。在寫代碼以前要對當前調用的函數了然於胸,否則就會發生老是由於一些小的問題致使編譯錯誤,BIOS的編譯是須要一些時間的,過多的花時間來試錯編譯的過程,會極大的影響咱們的開發效率,大概梳理了下編程的思路:框架
1. 從框架入手模塊化
要對代碼的框架有個瞭解,所調用的庫函數以及變量是否屬於本模塊內,若是不屬於,則要在inf文檔中添加模塊聲明。此外gRT的某些服務是在gST中,所以學會相互轉換函數
2. 對形參入手指針
函數能夠識別到之後,則要關注形參的類型以及格式,UEFI對於類型標準的很是嚴格,所以定義形參變量時,必定要肯定類型是否一致。另外的一點就是形參的類型,着重關注是否爲指針,是一級指針仍是二級指針。不要錯用。開發
3.GUID等全局變量的包含使用文檔
若是有涉及到GUID,則要看下目前的包含結構有沒有包括GUID,若是沒有則要在inf文件中添加GUID的聲明編譯
4.頭文件的包含效率
此外包含某個.h文件時,要關注當前.h文件是否包含了其餘模塊的.h文件,若是包含了,則要在調用的inf文件中添加Pkg的聲明變量