ENC28J60和AS3990的網絡UHF讀寫器設計
2.2 LwIP協議棧移植
①完成LwIP協議內部使用的數據類型的定義,如u8_t、s8_t、u16_t、u32_t等。這樣使得協議棧內部使用的數據類型不再受移植平臺處理器和編譯器的影響,增強了協議棧的可移植性。移植時,根據編譯器和移植平臺事先定義好這些數據類型,定義如下:


②定義臨界區(qū)保護函數用于開關中斷,定義結構體封裝宏以避免編譯器地址自動對齊。LwIP的實現基于這樣一種機制,即上層協議已經明確知道了下層所傳上來的數據的結構特點,上層直接使用地址計算得到想要的數據,而避免了數據遞交時的復制與緩沖。所以需定義結構體封裝宏,禁止編譯器的地址自動對齊以防止數據結構被打亂。
③實現與信號量和郵箱操作相關的函數,比如建立、刪除、等待、釋放等。LwIP使用郵箱和信號量來實現上層應用程序與協議棧間、下層硬件驅動與協議棧問的信息交互。這些函數可以通過調用μC/OS-II提供的信號量、郵箱函數來實現。
評論