ARM7平台下基于VxWorks的网络接口设计

时间:2012-11-10来源:网络


2.2 END设备驱动程序装载过程

  在VxWorks中,END设备驱动程序装载过程可以分为3个步骤,即指定END设备,装载END设备和启动END设备。END设备的指定是通过数组endDevTbl[ ]来完成的,该数组描述了系统中的所有网络设备的装载人口点及其相关参数。系统调用MUX设备装载函数mux-DevLoad()来装载END设备,调用MUX设备启动函数muxDevStart()来启动END设备。网络设备驱动程序的装载过程如图4所示。系统通过usrRoot()函数来调用usrNetInit()函数完成MUX的初始化,装载网络设备表endDevTbl[ ]中描述的所有设备,并将IP协议绑定到网络引导设备上等。

  当网络设备产生中断时,VxWorks调用驱动程序先前注册的中断服务程序。中断服务程序应做尽可能少的工作,以完成将数据包从本地网络设备送出/取出的操作。

2.3 文件配置

  由于RTL8019兼容NE2000网卡芯片,只需要在其基础上完成必要的修改。首先将Tornado2.2\target\src\drv\end目录下的ne2000End.c和Tornado2.2\target\h\dry\end目录下的ne2000End.h拷贝到bsp目录下,然后修改以下文件。

(1) 修改ne2000End.C

  ①修改头文件包含目录;
  ②sysIntCONnect修改为intConnect;
  ③sysLanIntenable修改为intEnable,并修改返回类型void为STATUS。

(2) 修改ne2000End.h

将寄存器地址左移1位,如:

#define ENE_RSTART(0x011)

(3) 修改config.h

添加网络宏定义:

①#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( ))入口点及相关参数。

(5) 修改Makefile
添加MACH_EXTRA=ne2000End.o

(6) 修改sysLib.c

  ①添加MAC地址定义:

unsigned char ne2000EnetAddr[]=ETHERNET_MAC_ADRS;

  ②添加 sysInByte、sysOutByte、syslnWordString和sysOutWordString函数。

  ③在sysHwInit()中添加CPU端口初始化:

  ④在sysHwInit()中添加RTL8019芯片的复位和初始化函数。相关代码如下(有关寄存器的宏定义请参照RTL8019数据手册):

1 2 3

关键词: S3C44B0 VxWorks 网络接口

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版