ARM7平臺下基于VxWorks的網(wǎng)絡(luò )接口設計
2.2 END設備驅動(dòng)程序裝載過(guò)程
在VxWorks中,END設備驅動(dòng)程序裝載過(guò)程可以分為3個(gè)步驟,即指定END設備,裝載END設備和啟動(dòng)END設備。END設備的指定是通過(guò)數組endDevTbl[ ]來(lái)完成的,該數組描述了系統中的所有網(wǎng)絡(luò )設備的裝載人口點(diǎn)及其相關(guān)參數。系統調用MUX設備裝載函數mux-DevLoad()來(lái)裝載END設備,調用MUX設備啟動(dòng)函數muxDevStart()來(lái)啟動(dòng)END設備。網(wǎng)絡(luò )設備驅動(dòng)程序的裝載過(guò)程如圖4所示。系統通過(guò)usrRoot()函數來(lái)調用usrNetInit()函數完成MUX的初始化,裝載網(wǎng)絡(luò )設備表endDevTbl[ ]中描述的所有設備,并將IP協(xié)議綁定到網(wǎng)絡(luò )引導設備上等。
當網(wǎng)絡(luò )設備產(chǎn)生中斷時(shí),VxWorks調用驅動(dòng)程序先前注冊的中斷服務(wù)程序。中斷服務(wù)程序應做盡可能少的工作,以完成將數據包從本地網(wǎng)絡(luò )設備送出/取出的操作。
2.3 文件配置
由于RTL8019兼容NE2000網(wǎng)卡芯片,只需要在其基礎上完成必要的修改。首先將Tornado2.2\target\src\drv\end目錄下的ne2000End.c和Tornado2.2\target\h\dry\end目錄下的ne2000End.h拷貝到bsp目錄下,然后修改以下文件。
(1) 修改ne2000End.C
?、傩薷念^文件包含目錄;
?、趕ysIntCONnect修改為intConnect;
?、踫ysLanIntenable修改為intEnable,并修改返回類(lèi)型void為STATUS。
(2) 修改ne2000End.h
將寄存器地址左移1位,如:
#define ENE_RSTART(0x011)
(3) 修改config.h
添加網(wǎng)絡(luò )宏定義:
①#define INCLUDE_NETWORK
②#define INCLUDE_END
③#ifdef INCLUDE_END
#undef INCLUDE_SNGKS32C_END
#define INCLUDE_NE2000_END
#endif/*INCLUDE_END*/
(4) 修改configNet.h
在endDevTbl[ ]表中添加新的裝載函數(其函數命名格式為xxLoad( ))入口點(diǎn)及相關(guān)參數。
(5) 修改Makefile
添加MACH_EXTRA=ne2000End.o
(6) 修改sysLib.c
?、偬砑覯AC地址定義:
unsigned char ne2000EnetAddr[]=ETHERNET_MAC_ADRS;
?、谔砑?sysInByte、sysOutByte、syslnWordString和sysOutWordString函數。
?、墼趕ysHwInit()中添加CPU端口初始化:
?、茉趕ysHwInit()中添加RTL8019芯片的復位和初始化函數。相關(guān)代碼如下(有關(guān)寄存器的宏定義請參照RTL8019數據手冊):
tcp/ip相關(guān)文章:tcp/ip是什么
評論