vxworks嵌入式操作系统下网络设备驱动程序设计

vxworks嵌入式操作系统下网络设备驱动程序设计

ID:10917966

大小:54.00 KB

页数:3页

时间:2018-07-08

vxworks嵌入式操作系统下网络设备驱动程序设计_第1页
vxworks嵌入式操作系统下网络设备驱动程序设计_第2页
vxworks嵌入式操作系统下网络设备驱动程序设计_第3页
资源描述:

《vxworks嵌入式操作系统下网络设备驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Vxworks嵌入式操作系统下网络设备驱动程序设计

2、第1Email:cai_yangetang.摘 要:本文主要介绍在Vxalstyle="TEXT-INDENT:21pt;mso-char-indent-count:2.0;mso-char-indent-size:10.5pt">2.1.1BSD驱动程序设计在Vxalstyle="TEXT-INDENT:21pt;mso-char-indent-count:2.0;mso-char-indent-size:10.5pt">表1网络接口处理驱动程序指定函数函数

3、指针功能xxInit()if_init初始化接口xxOutput()if_output对要传输的输出分组进行排队xxIoctl()if_ioctl处理I/O控制命令xxReset()if_reset复位接口设备xxsoNormal>if_al>周期性接口例程驱动程序入口xxattach()调用ether_attach()来把上述5个函数映射到if结构中,ether_attach()调用如下:ether_attach((IF*)pDrvCtrl->idr,unit,"xx",(FUNCPTR)NULL,(F

4、UNCPTR)xxIoctl,(FUNCPTR)ether_output(),/*genericether_output*/(FUNCPTR)xxReset);pDrvCtrl->idr.ac_if.if_start=(FUNCPTR)xxTxStartup;上述参数中,需要一个接口数据记录(InterfaceDataRecord(idr)),unit号和设备名,下面四个参数就是相关驱动程序的函数指针。第一个函数指针指的是init()例程,这个例程可要可不要,第二个函数指针指的是ioctl()接口,它允许

5、上层来控制设备状态;第三个函数指针指的是把数据包送到物理层;最后一个函数指针指的是如果TCP/IP堆栈决定需要复位的话,它就复位这个设备。接着下面那一句代码表示添加数据传输例程到IDR,ether_output()例程被调用后,传输开始例程就被TCP/IP协议堆栈调用。在这个入口驱动程序中还包括设备的初始化、发送和接收描述符的初始化等。2.1.2END驱动程序设计END驱动程序是基于MUX模式,网络驱动程序被划分为协议组件和硬件组件。MUX数据链路层和网络层之间的接口,它管理网络协议接口和低层硬件接口之间的交互

6、;将硬件从网络协议的细节中隔离出来;删除使用输入钩例程来过滤接收从协议来的数据包,和删除了使用输出钩例程来过滤协议包的发送;并且链路层上的驱动程序需要访问网络层(IP或其他协议)时,也会调用相关的MUX例程。值得注意的是,网络层协议和数据链路层驱动程序不能直接通讯,它们必须通过MUX。如图3所示:2.3将驱动程序加载到Vxal>要对所设计的驱动程序进行测试,首先就必须把驱动程序加载到Vxal>首先,修改configNet.h文件,添加如下代码:#ifdefINCLUDE_DM_9102_END#defineDM

7、_9102_BUFF_LOAN_01#defineDM_9102_LOAD_FUNCsysDm9102EndLoad#defineDM_9102_LOAD_STR_0""IMPORTEND_OBJ*DM_9102_LOAD_FUNC(char*,void*);和END_TBL_ENTRYendDevTbl[]中添加#ifdefINCLUDE_DM_9102_END{0,DM_9102_LOAD_FUNC,DM_9102_LOAD_STR_0,TRUE,NULL,FALSE},#endif/*INCLUDE_DM

8、_9102_END*/其次,编辑config.h文件,添加如下代码:#defineINCLUDE_DM_9102_END/*Davi9102FastEtherController*/最后,编辑sysLib.c文件,添加如下代码:/*includedm9102Enddriversupportroutines*/#ifdefINCLUDE_DM_9102_ENDIMPORTSTATUSsysDm9102PciInit(void);#endif/*INCLUDE_DM_9102_END*//*includedm910

9、2Enddriversupportroutines*/#ifdefINCLUDE_DM_9102_END#include"sysDm9102End.c"#endif/*INCLUDE_DM_9102_END*/#ifdefINCLUDE_DM_9102_ENDsysDm9102PciInit();#endif/*INCLUDE_DM_9102_END*/通过上述过程相应的添加程序,然后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。