Monday, May 6, 2013

UEFI Coding Tips in SourceInsight

 

我想有在寫大型程式的工程師應該是有聽過SourceInsight(SI)這套軟體吧!!

今天我遇到一個小小問題,也找到問題點就分享給大家~~

使用SI的優勢是在於UEFI定義了很多的結構,我們在使用結構SI都會動態跑出關鍵的變數名稱,這方便設計者不用特地去記一些變數名稱。

不過,在我們設一個程式時會傳入EFI_SYSTEM_TABLE變數,

EFI_STATUS
sample(
  IN EFI_HANDLE                                 ImageHandle,
  IN EFI_SYSTEM_TABLE                      *SystemTable
  )

在之前都會先宣告EFI_APPLICATION_ENTRY_POINT(sample)或EFI DRIVER ENTRY POINT(sample),然而此次的宣告就導致SI無法判別此變數,原因是在於這兩個宣告是指向空集合。

此時,我會將宣告暫時註解起來以方便使用變數*SystemTable,其實<1>中也提到,這宣告對於模擬機器有很大的影響,但對於實際的硬體上並無差別,只是為了可讀性及好的習慣所以才多了這一行指令。

<Reference>

<1>http://biosengineer.blogspot.tw/2010/07/efidriverentrypoint.html

No comments:

Post a Comment

Register Transfer Level Design with Verilog (1) [ebook]

設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...