ucosii版本:2.91
lwip版本:1.3.2
keil版本:4.21.00
移植後發現如下報錯資訊:
1. ..\user\lwip-1.3.2\lwip-1.3.2\src\include\lwip/arch.h(85): warning: #47-d: incompatible redefinition of macro "enomem" (declared at line 121 of "c:\keil\arm\rv31\inc\errno.h")
2...\user\lwip-1.3.2\lwip-1.3.2\src\include\lwip/arch.h(95): warning: #47-d: incompatible redefinition of macro "einval" (declared at line 120 of "c:\keil\arm\rv31\inc\errno.h")
3...\user\lwip-1.3.2\lwip-1.3.2\src\include\lwip/arch.h(106): warning: #47-d: incompatible redefinition of macro "edom" (declared at line 76 of "c:\keil\arm\rv31\inc\errno.h")
4...\user\lwip-1.3.2\lwip-1.3.2\src\include\lwip/arch.h(107): warning: #47-d: incompatible redefinition of macro "erange" (declared at line 87 of "c:\keil\arm\rv31\inc\errno.h")
5...\user\lwip-1.3.2\lwip-1.3.2\src\include\lwip/arch.h(159): warning: #47-d: incompatible redefinition of macro "eilseq" (declared at line 100 of "c:\keil\arm\rv31\inc\errno.h")
經檢查是安裝的keil中,enomem、einval、edom、erange、eilseq的巨集定義與keil自帶的巨集定義重複,則只要將lwip中的arch標頭檔案的衝定義部分注釋掉即可。
LWIP 移植檔案
要將乙太網驅動和lwip鏈結在一起還需要一些中間檔案,這些檔案很重要。這些中間檔案包括 cc.h cpu.h perf.h sys arch.c 和sys arch.h。stm32f4x7 eth bsp.c netconf.c 為硬體驅動配置檔案。stm32f4x7 eth.c 驅動庫傳輸層硬體配...
LWIP應用開發 LWIP移植和裁剪
1.lwip原始碼目錄結構 lwip原始碼目錄中包括doc src test資料夾和其他檔案,其中src資料夾是lwip的重點,裡面包含了lwip的原始碼 src原始碼資料夾如下示,由api core include netif這4個資料夾組成 src api 協議棧sequentialapi和so...
lwip雙網絡卡移植
我公司產品是雙網口,原來的程式是自己寫的tcp ip協議棧,因為只是簡單實現了arp和tcp udp的最簡單情況,所以有時候在公網上會遇到問題。後來在單網口的產品中移植了lwip,輕量級tcp ip協議棧,覺得一定程度上解決了問題,所以雙網絡卡的產品也要用lwip這個協議棧來實現。這個工作就落到了我...