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


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