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


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