VxWorks网络驱动配置及分析
VxWorks下网卡驱动程序的开发
VxWorks下网卡驱动程序的开发摘要:本文首先从整体上分析VxWorks 网卡驱动程序的原理和结构,然后深入地分析Rtl8139C网卡驱动程序的结构以及实现,本文对于VxWorks下的同类开发也有一定参考作用。
关键词:网卡驱动程序;VxWorks;嵌入式系统;Tornado1引言VxWorks是当前应用十分广泛的嵌入式实时操作系统,而网卡在基于VxWorks的开发中有着极其重要的作用。
Tornado 是VxWorks的开发工具,它本身支持的网卡不多。
本文涉及到的网卡是Realtek 公司的8139C PCI网卡,相关的硬件资料有:RTL8139C(L) data sheet 和Rtl8139 Programming Guide 。
需要实现的是RTL8139C END driver 。
2 VxWorks简介VxWorks是由WRS(Wind River System Inc.)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求进行组合。
其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。
VxWorks是一种功能强大而且比较复杂的操作系统,VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。
所以仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。
TornadoII是为开发VxWorks应用系统提供的集成开发环境。
VxWorks的优秀特性为编写应用程序和设备驱动程序提供了极大的便利。
在VxWorks下,设备驱动程序既可以嵌入到内核中随系统一起启动,也可以作为可加载模块在系统启动之后运行。
网卡驱动程序一般采用前一种方式。
3 VxWorks的网络模型网卡在VxWorks开发中是极其重要的。
在开发机-目标机模式中,通过网线进行下载调试是Tornado调试器最常用最方便的方式。
vxworks END驱动编写概述
endMCastAddrDel( ) 此函数从一个设备的广播列表中移出一个以前注册的广播地址。它的参数是指向
在muxDevLoad()加载驱动之后,调用muxDeStart()函数,它调用驱动中的endStart() 函数。endStart()函数应该激活驱动并且用相应的中断连接程序把中断服务程序连接到相 应的结构和BSP中。
下图简单的说明了初始化的过程
2.3 接收帧 当有中断发生的时候,VxWorks 调用 endStart()函数注册的中断服务程序。中断服务程
#define 进行分组。定义在 target/config/bspname/configNet.h 里面。以下是网络设备描述的一 个例子。在系统中应该添加类似的描述到 configNet.h 文件中。
#define MOT_FCC_LOAD_FUNC sysMotFccEndLoad #define MOT_FCC_LOAD_STRING ""
endUnload( )函数的原形如下: STATUS endUnload ( END_OBJ * pEND /* END object */ )
4
endSend( ) 网络驱动发送函数是由在加载过程中创建的NET_FUNCS表所定位的。当网络服务执行
发送请求的时候,MUX调用此函数。此发送程序接收表示被发送帧的mBlk链。 endSend( )函数原形如下:
3. 编写 END 驱动 3.1 驱动用的 END 数据结构
2
END_OBJ
END所用的核心的数据结构是END_OBJ。驱动应该指定这个结构并在endLoad()函数 中初始化它的一些元素。此结构定义在target/h/end.h中。
Vxworks嵌入式操作系统下网络设备驱动程序设计
Vxworks嵌入式操作系统下网络设备驱动程序设计Vxworks嵌入式操作系统下网络设备驱动程序设计作者Email:******************摘要:本文主要介绍在Vxworks操作系统下网络设备驱动程序设计、调试方法以及将其加入系统内核的配置方法。
关键词:Vxworks 嵌入式操作系统网络设备引言VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
1 嵌入式系统嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。
和通用计算机不同,嵌入式系统是针对具体应用的专用系统,目的就是要把一切变得更简单、更方便、更普遍、更适用;它的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。
嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统以及特定的应用程序等四部分组成,是集软硬件于一体的可独立工作的“器件”;用于实现对其它设备的控制、监视或管理等功能。
嵌入式系统应具有的特点是:要求高可靠性;在恶劣的环境或突然断电的情况下,要求系统仍然能够正常工作;许多嵌入式应用要求实时处理能力,这就要求嵌入式操作系统(EOS)具有实时处理能力;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。
2 设备驱动程序Vxworks5.4中驱动程序主要分为三种:字符、块以及网络驱动程序。
VxWorks下网卡驱动设计
基于VxWorks的网卡驱动设计摘要:随着嵌入式技术在军工、信息家电中的应用,如何在嵌入式实时系统下对网卡进行驱动程序的设计以及实现网络通信和管理,成为非常重要的技术。
本文首先从整体上VxWorks网络系统得基本原理和与结构,然后以Intel82557网卡驱动为例,着重介绍网络设备驱动程序设计与实现过程。
本文对所有基于MUX机制下的VxWorks网络设备驱动程序开发者具有参考价值.关键词:网卡驱动程序;VxWorks; END;MUX中图分类号:文献标识码:A 文章编号:1006-7043 (2006)Abstract:As Embedded system are the most popular technology applied in war industry, information appliances ,it has become an important technology how to design the device drivers and implement network communications and management under embedded system. At first, this article analyzes the base principle of network driver in VxWorks and its architecture. Then it mainly illustrates how to develop the enhanced network device driver by example of Intel82557 the enhanced network driver 。
It has a reference value for other network device driver developers.Keywords:Network Driver; VxWorks; END;MUX引言VxWorks 是一个具有微内核、可裁剪的高性能强实时操作系统,它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
第七章:vxWorks操作系统网络和配置管理
25
火龙果整理
主机名
主机名和一个网络地址联系起来: hostAdd (hostName, hostAddr) hostShow ( )
2014-11-18
26
火龙果整理
网络设备
STATUS netDevCreate (devName, host,protocol) devName 产生设备的本地名称习惯以 ‘:’结束 host 远程计算机名 (通过hostAdd( )添加). protocol 传输文件的协议 VxWorks (0=RSH or 1=FTP). • Example -> netDevCreate (“ohio:”, “ohio”, 1) -> fd = open (“ohio:/u/teamN”, 2)
Vxworks系统和网络协议的接口是靠套接字(sockets)来 实现的。Sockets规范是得到广泛应用的、开放的、支持 多种协议的网络编程接口。通讯的基石是套接口,一个 通讯口是套接的一端,在这一端上你可以找到其对应的 一个名字。一个正在被使用的套接口都有它的类型和与 其相关的任务。套接口存在于通讯域中。通讯域是为了 处理一般的线程通过套接口通讯而引进的一种抽象概念。 套接口通常和同一个域中的套接口交换数据(数据交换 也可能穿越域的界限,但这时一定要执行某种解释程 序)。各个任务使用这个域互相之间用Internet协议来进 行通讯。
16位TCP校验和 选项 数据
TCP报文格式
2014-11-18
6
火龙果整理
IP报文
报文长度 服务类型 标志 协 议 总 长 度 片 偏 移 报头校验和
版本
标 示 符 生存时间
源 IP 地 址 目 的 IP 地 址 IP 选 项
VxWorks实时操作系统的USB驱动程序原理与分析
VxWorks实时操作系统的USB驱动程序原理与分析1、问题的提出通用串行总线(USB)作为一种中高速的数据方式,已经很普遍地应用于外设与主机的通信中。
VxWorks是当今十分流行的实时操作系统,在通信、国防、工业控制、医疗设备等嵌入式实时应用领域。
很多VxWorks系统中都有USB设备,可是关于USB的驱动实现并没有相关的资料可以参考,给实际工作带来了难题。
本文通过详细地分析VxWorks下的USB驱动栈,具体提出了其实际应用的方法,为USB在应用VxWorks的嵌入式系统的开发扫清了技术障碍。
2、VxWorks简介VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Tim Operation System,RTOS)内核,具有先进的网络功能。
VxWorks的开放式结构和对工业标准的支持,使得开发人员易于设计高效的嵌入式系统,并可以很小的工作量移植到其它不同的处理器上。
作为一种先进的实时操作系统,它具有以下特点:1.可裁剪微内核结构。
2.高效的任务管理:①多任务,具有256个优先级。
②具有优先级排队和循环调度。
③快速的、确定性的上下文切换。
3.灵活的任务间通讯:①三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。
②消息队列。
③套接字(Socket)。
④共享内存。
⑤信号(Signals)4.微秒级的中断处理。
5.支持POSIX 1003.1b实时扩展标准。
6.支持多种物理介质及标准的、完整的TCPIP网络协议。
7.灵活的引导方式。
支持从ROM、flash、本地盘(软盘或硬盘)或网络引导。
8.支持多处理器并行处理。
9.快速灵活的l/O系统。
10.支持MS-DOS和RT-11文件系统。
11.支持本地盘,flash,CD-ROM 的使用。
12.完全符合ANSI C标准。
13.多个系统调用。
3、USB驱动程序的结构概述图1提供了一个USB主驱动栈结构的简单概括。
Vxworks学习资料整理
Vxworks学习资料整理Vxworks学习资料整理 (1)1 基于硬盘启动的Vxworks环境搭建 (3)2 Vxworks引导盘制作 (6)2.1 通过DOS加载VxWorks方法 (6)2.2 Bootrom三种类型 (7)2.3 VxWorks映象 (7)2.4 Bootrom.sys最快制作方法 (8)2.5 从网络引导 (8)2.6 从本地硬盘引导 (9)2.7 制作bootrom文件 (9)2.8 Bootrom编译步骤 (11)2.9 用BSP生成Bootable工程(即我们的程序文件) (12)2.10 FTP Server下载VxWorks (14)3 Tornado调试环境的建立 (17)3.1.1 配置文件config.h (17)3.1.2 网络连接 (18)6 从主机搭接(attach)到目标机 (21)7.1.3 串口连接 (21)4 4.Config.h文件注释说明 (22)4.1 启动行说明 #define DEFAULT_BOOT_LINE \: (22)4.2 Config.h 文件说明 (23)4.3 启动参数结构体 BOOT_PARAMS (35)4.4 booting过程介绍,比较详细 (39)5 sysClkRateGet();返回系统时钟每秒的tick数量, tick详解 (43)6 中断应用设计要点 (44)7 驱动程序设计 (49)8 缩短vxworks的启动时间 (52)9 调试篇 (55)10 驱动编程步骤 (55)10.1 将驱动程序增加到“系统驱动程序列表”中 (55)10.2 将设备增加到“系统设备列表”中 (55)10.3 打开设备,得到文件描述符 (55)10.4 SELECT机制的使用 (56)10.4.1 select( )函数翻译 (58)11 VxWorks系统的网络驱动(END) (60)12 VXworks操作系统中信号量用于多任务同步与互斥的讨论 (62)12.1 二进制信号量实现互斥和同步 (64)12.1.1 互斥的实现: (64)12.1.2 同步的实现: (65)12.2 互斥信号量 (67)13 Tornado的文件目说明录 (68)14 Shell 内置命令说明 (72)14.1 任务管理 (72)14.2 任务状态信息 (72)14.3 系统修改和调试 (73)14.4 对象命令( WindSh Commands for Object Display ) (73)14.5 WindShell and Browser, Shell 命令 (74)15 驱动篇 (82)16 中断篇 (83)16.1 中断服务程序ISR编写注意事项 (83)16.2 中断号与中断向量的转换 (84)16.3 安装中断服务程序 intConnect() (84)16.4 调试中断服务程序方法 (84)17mkboot批处理命令详细解释 (84)18 MakeFile 说明 (86)19 VxWorks5.4中的输入输出重定向 (89)19.1 vxworks屏幕输出, 一般来说用printf都是串口/shell输出,串口输出就可以到屏幕上了? (89)19.2 20.2 VxWorks中针对X86开发时标准输入输出的重定向? (90)20 怎样加入外部.o文件? (93)21 如何在Vxworks中使用 cd ,pwd , ls 命令:启用File System and Disk Utilities 组件(INCLUDE_DISK_UTIL),可在shell下用pwd/cd/ls等命令 (94)22 Error: image is larger than 524288 bytes (94)23 proxyArpDefaultOn()未定义解决方法? (95)24 如何将VxWorks的系统定时间隔或系统Ticks设置为1ms (95)25 read/write、fread/fwrite、fopen/open有什么区别 (96)26 快速启动 (100)27 启动时报ATA0a和硬盘启动相关问题 (100)28 如何安装USB2.2新版本及编译USB驱动? (101)29 WindML、图形界面相关问题 (102)29.1 WindML,ugldemo出错? (102)29.2 5101 VxWorks黑屏问题? (102)29.3 添加ugldemo.c后,编译报undefined reference to “ugltextdraw”错误一大堆? (103)29.4 WindML 中文字库显示? (103)30 VxWork6.8相关问题 (105)30.1 ELF和bin文件的区别? (105)30.2 diab和GNU的区别? (106)31 No such file or directory错误? (108)专业术语:WTX协议:(Wind River Tool eXchange): 用于开发机内部Tornado工具与Target Server 之间通信.WDB协议:(Wind DeBug): 用于主机Target Server与目标机之间的通信.1基于硬盘启动的Vxworks环境搭建VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。
VxWorks实时操作系统的USB总线驱动分析与开发
摘要 : 针对 V w0k x rs实时操作 系统 下 U B应 用广泛 , U B驱动 开发 难度 高等 问题 , S 但 S 具体分析 了 V Wo x  ̄s下 U B总线驱 S
动 模 型 的 结构 及 功 能 , 细说 明 了其 U B 驱 动 栈 。 同时 , 此 U B 总 线 驱 动 模 型 的 基 础 上 详 细 介 绍 了 U B字 符 设 备 驱 详 SD 在 S S
r u d y I i e y u eu o e l i g a d d v lp n B di e . o n l . t sv r s f l rr ai n n e eo i g US r r f z v
Ke r s V Wo ; S ; l n d l; B y wo d : x  ̄s U B ci tmo u e US D e
t e US r e d l n Vx  ̄ so e aig s se . e a ay e . h n t e US r e tc s e p an d i eal B s d o h h B d i rmo u e i Wo p r t y t m a n z d T e h BD d i rsa k i x li e n d ti a e n t e v n r l v .
文章编号 :0 0— 8 9 20 )0—05 0 10 8 2 (0 8 1 0 5— 3
I lm e t t n o B Drv r o W o k a — m e Op r t n S se mp e n a i fUS i e n Vx o r s Re lTi e a i y tm o
US d v rm o M e t e USB drv rd v lpme tfrc rc e e ie i nto uc d B r e d , h i i e e eo n o ha a t rd v c s i r d e ,wh c s wst B v n r nse c n s ih ho he US e e tta fr me ha im
VxWorks下增强型网络驱动程序的设计与实现
动程序 :x r S 4 3网络驱 动程序和 V Wok 可 V Wok B D . s x r s
裁 剪 的 增 强 型 网 络 堆 栈 ( E S c l l Eh ne SN ,Sa b n a cd a e
N t ok tc ) x r S . ew r Sak 。V Wok BD4 3协议栈符合 B D . s s S4
数据释放掉 了, 上层复制的链表仍 然控 制着这些数据 , 直到 c l l k中的 mB 计数 为 O时才真 正 的将数 据 占用 B l k 的簇释放掉。而最后一步是不需要 我们来考虑 的的处理 了, 需要调 r s 只 用即可 。创建这三级结构来接收数据报 一般要遵循这 样 四步 ( 接收的数据已经放到 c s r l t 中) ue :
型网络驱动程序 的实现 。本文杖于 VWok x r s下的 同类开发也有一定参考作 用。
关键词 :x rs¥ C 50 R T MI增 强型网络驱动程序 (N ) V Wok 3 4 1B A M7 D E D
1 引 言
V Wok 由 WR ( n i r ytm I . 公 司 x r s是 s Wi R e s c ) d v S e n 开发的一套具有微 内核 、 高性 能、 可伸缩 的实时操作 系 统, 支持广泛的 网络通 信协议 , 并能够根据 用户的需 求
的, 在驱动程 序中一般使 用同样长度的簇 , 即最 大的 以 太包长 12 5 0字节。这 三种 结构在 驱动程 序初 始化 时
产 生 。 当数 据 向 上 层 传 送 时 , 本 层 中 可 以 释 放 已 经 在 不 再 使 用的 mBk 表 , 是这 并 不 表 示 将 c s r 的 l链 但 lt 中 ue
VxWorks下基于S3C451OB芯片的END型网络驱动设计
应旦塞
文章编号 : 1 7 ・0 12 0 )3 0 9 -2 11 4 (0 7 0 ・ 0 2 0 6
墨 塞旦
V Wok x rs下基于 ¥ C 5 B芯 片的 E D型 网络驱动设计 341 0 N
刘 峰, 杨 帆 ,杨翠娥
( 哈尔滨 T程大学 信息 与通信工程学院,哈尔滨 11 0) 51 1 1 1
摘要: V Wo k 下增强型网络驱动是一个链路层驱动程序.它通过 MU x rs X层
函数与网络协议层进行通 信。给 出了基于 ¥ C4 1 8芯片和 V Wok 操作 3 50 x s r 系统的嵌 入式网络硬件设计 .分析了 V Wo s操作系统下增 强型 网络 驱动 x  ̄ 的结构原理以及描述了详尽 的增 强型 网络驱动具体实现 .对同类开发有一定 的参考意义。
Ke y WOr : dsEND; x s ¥ C4 B; V Wo k ; 3 51 r 0 MUX
.....
.
.
.
.
.......
.
.
......
....................... Nhomakorabea—
—
Vx rs是关圜 Wid Rie y tm 公司推 出的运行在 目标 Wo k n v rS se 机 J的 高 性能 、 呵裁 减 的嵌 入 式 安 时 操 作 系统 【1fl l 2。 增强型网络驱动 ( n a cd Newo k Drv r E h n e t r i e , END) 一 是。个使 用 MUX(多路复用)功能来与网络协议进行通信的数据链路层驱动 f1 3。 随着 V Wok 和 网络传输信息的广泛应用 ,如何让它们支 持 x rs 各种硬件平台成 为亟待解决的问题。本文主要研究,基于 S ms n a ug 公司 ¥ C4 lB处 理 器 的 网 络硬 件 环 境 设计 及 该硬 件 环 境下 3 50 Vx r s Wok 嵌入式操作系统增强型网络驱动 的构建 与编写。
基于VxWorks的网络增强型驱动分析与实现
基于VxWorks的⽹络增强型驱动分析与实现
基于VxWorks的⽹络增强型驱动分析与实现
王斌正;郭迎清;陆军
【期刊名称】《计算机测量与控制》
【年(卷),期】2008(016)011
【摘要】⽹络驱动的开发是基于VxWorks的嵌⼊式应⽤的重要组成部分;VxWorks提供了多路复⽤层(MUX)接⼝来实现增强型⽹络驱动(END)的开发,具有协议⽆关性特点,可使开发⼈员专注于驱动程序的开发⽽⽆需考虑上层协议的内容,利⽤这种⽅法对RTLSl39⽹卡的END开发进⾏了研究;⾸先阐述了END的数据结构和接⼝函数,然后着重分析了BSP中相关⽂件的配置,最后对驱动的加载启动过程及数据包的存储收发过程作了介绍;对于VxWorks下基于MUX机制的其它⽹卡驱动的开发具有参考价值.
【总页数】3页(1707-1709)
【关键词】VxWorks;增强型⽹络驱动;多路复⽤;BSP;RTL8139
【作者】王斌正;郭迎清;陆军
【作者单位】西北⼯业⼤学,动⼒与能源学院,陕西,西安,710072;西北⼯业⼤学,动⼒与能源学院,陕西,西安,710072;西北⼯业⼤学,动⼒与能源学院,陕西,西安,710072
【正⽂语种】中⽂
【中图分类】TP393.01
【相关⽂献】
1.VxWorks下增强型⽹络驱动程序的设计与实现 [J], 詹特伦; 刘伟平; 黄红斌; 陈舜⼉; ⾼智强。
VxWorks系统的PCI总线配置与应用详解
中断与中断服务几乎是所有设备运转的核心。PCI设备
也离不开中断与中断服务的支持,VxWorks系统对PCI设备
提供了强大的中断复用支持库,来支撑PCI设备挂接和断开
中断服务程序。常用的几个函数如表3所示:
表3 PCI总线中断复用函数
∥ 函数
PCIInfLIbInit
PciInt PcIIntConnect PciIntDIsconnect
VxWorks操作系统专门对PCI设备提供支持,包括PCI总 线驱动和一套PCI支持函数。配置总线上的设备还与硬件的 体系结构和BSP支持程度相关。本文结合PCI原理。谈谈实 际使用中的经验与体会。
2 PCI总线架构 2.1典型架构
在典型的PCI总线系统架构中.处理器、高速缓存和内
收稿El期:2008年2月11日
2—31位。
如果位O为o.贝vJ要映射到存储器空间。位1—3是只读的.
其中1—2是类型编码,表示映射要求,表1列出了类型编
码:
表1 基地址寄存器位2、位1的含义
陋
…一 …~~含义…”……、…鼍
基地址寄存器为32位宽.可以映射到32 00 位存储空问的任何地方
01 为32位宽.必须映射到1 M以下的空问
Im
秒勃通信 2009军百为(下广~
≤≤≤责任编辑:左永君ji768@163.com
万方数据
VxWorks系统的PCI总线配置与应用
j设计与实现k
VM—STATE_MASK FOR_ALL, VM—STATE_FOR_MEM—OS, }, {/★显示内存等。/ (void。)Oxa0000. (void。)Oxa0000, Ox60000。 VM—STATE—MASK FOR_ALL, VM—STATE—FOR—MEM—lO, }, f/★为操作系统保留的高端内存’/ (void+)Oxl 00000, (void+)Oxl 00000, Ox080000。 VM—STATE_MASK_FOR—ALL, VM—STATE—FOR—MEM—OS, }。 {r为应用程序保留的高端内存。/ (void’)Oxl 800000, (void‘)Oxl 80000, LOCAL MEM—SIZE—Oxl80000,/’在sys—Mem—Top() 中会改变。, VM-sTATE_MASK_FOR_ALL, VM—STATE_FOR—MEM—OS, }. ,★用于动态映射的条目+/ DUMMY—MMU—ENTRY. DUMMY.JⅥMU—ENTRY, }: 上面描述了系统物理内存在逻辑内存中所分配的空间, 系统引导时会根据这里的描述管理内存空间。 手动配置PCI设备的方法就是根据PCI基地址寄存器的值 在源码中修改上表。但是通常不推荐这样做,不然将不能适 应硬件环境的变化而局限了BSP的使用。通常使用的方法是 半自动配置方法。所谓半自动方法是相对于包含完整MMU
基于VxWorks操作系统的USB2.0驱动分析
的主控制器 , 控制 器支持 US 20 该 B.。 每一 主控制 器在其 上 都 有 相对 应 的主 控制 器 驱 动程
序( D , Hc ) 这些设备驱动程序与底层的硬件相关 , 为上层
提供 统一 的功能接 口。
1 U B20驱 动 程 序模 型 结构 S .
围串行 通 信 接 口, 有 高 速 数 据传 输 、 插拔 、 具 热 即插 即用 ( n )成 本低 等特 点 。随 着 U B规 范 的 日趋 完 善 和 成 PP、 S 熟 , 量 仪器 中也 已经 开始 使用 U B作 为 其标 准 的外 围 测 S 接 口。V wok 操 作系 统 以其 良好 的可 靠性 和 卓越 的实 x rs 时性 在 仪 器 仪 表 领 域 得 到 了 广 泛 应 用 , 文 针 对 V — 本 x Wok 操作 系统 下 最 新 的 US . rs B 2 0驱 动 程 序 进 行 了 分 析 , 于 Vx rs 为基 wok 的仪器 仪表 使用 US . 总线 提 供 B2 0 了技 术参考 , 合作 者 开 发某 仪 器 过程 中遇 到 的 问题 , 并结
g v n ie .
Ke wo d :Vx o k , mb d e y t m ; B; rv r y rs W r s e e d d s se US d ie
0 引 言
通用 串行 总线 ( nv ra sr l u ) u iesl ei s 是一 种 计算 机 外 ab
给 出了使用 注意事 项 。
的主控制 器 , Itl 先设计 并制 定相应 规范 ; 由 ne 最
工程项目中的VxWorks操作系统移植与网络驱动分析实现的开题报告
工程项目中的VxWorks操作系统移植与网络驱动分析实现的开题报告一、选题意义随着科学技术的进步和发展,计算机技术越来越成熟,在各领域得到广泛的应用。
特别是在工程领域中,计算机技术起着越来越重要的作用。
操作系统是计算机软件的重要组成部分,它不仅提供了良好的软件环境,也为程序员提供了方便、高效的编程接口。
VxWorks是一种功能齐全的实时操作系统,具有强大的实时性和可靠性,具有广泛的应用。
由于其优越的性能和可靠性,被广泛应用于工业控制、航空航天和军事等领域。
本课题选择对VxWorks操作系统的移植与网络驱动分析进行研究,将有意义的意义。
一方面,VxWorks操作系统的移植是将其应用于不同硬件平台的重要步骤,具有广泛的实用性,在实际工程项目中有很大的应用前景。
另一方面,网络驱动是实现计算机网络的重要组成部分,对于现代化的工业控制、智能交通等领域具有不可替代的作用。
因此,通过对VxWorks 操作系统的移植和网络驱动的分析,可以促进工程项目的发展,并为未来的工业控制和网络通信技术的发展提供前提。
二、研究内容和方法1. 研究内容(1)VxWorks操作系统的移植VxWorks操作系统主要面向嵌入式系统开发,因此需要在不同的硬件平台上进行移植。
本研究将首先调研VxWorks操作系统的体系结构,了解其移植的基本原理和方法。
然后,将选择一种典型的硬件平台进行移植,并进行详细的实验验证。
通过分析实验结果,评估移植的效果和稳定性,并输出相关的移植文档,以供后续工作的参考。
(2)网络驱动分析网络驱动是实现计算机网络的重要组成部分,在实际应用中具有重要的作用。
本研究将在VxWorks操作系统中分析网络驱动的结构和实现方法,了解其基本原理和技术特点。
然后,将选择一种典型的网络协议进行分析和实验验证,并输出相关的分析和测试报告,以便后续工作的参考。
2. 研究方法(1)文献调研法首先,我们将查阅相关的文献资料,了解VxWorks操作系统的基本原理、运行机制和实现方法。
第七章vxWorks操作系统网络和配置管理ppt课件
*
网络路由
IP路由算法: if (destination on a directly attached network) send data to destination else use routing table to find correct router send data to router 目标机路由选择表可以用两种方式建立 : 静态路由: 通过添加路由到一个本地路由表 使用mRouteAdd() 或routeAdd( ). 动态路由:主机交换路由信息使用一个路由协议. VxWorks支持路由选择信息 (RIP)和优先开放最短路径 (OSPF)
HTTP、Telnet、FTP、 TFTP、Ping、etc
TCP/UDP
ARP/RARP
IP
ICMP
Ethernet、802.3、PPP、 HDLC、FR、etc
接口和线缆
应用层
传输层
网络层
提供应用程序网络接口
建立端到端连接
寻址和路由选择
物理介质访问
二进制数据流传输
*
*
TCP/IP管理
报文 端口 连接 解析
*
*
Socket编程(继续)
Socket函数: socket() 创建一个套接口 bind() 给套接口分配名称 listen() 打开TCP套接口连接 accept() 完成套接口间连接 connect() 请求连接套接口 shutdown() 关闭套接口间连接 send() 向TCP套接口发送数据 recv() 从TCP套接口接收数据 select() 完成同步I/O传输 read() 从套接口读取信息 write() 向套接口写入信息 ioctl() 完成对套接口的控制 close() 关闭套接口
基于VxWorks的网络设备驱动程序开发研究
Ab t a t s r c :At rt h a e n lz st ep n i l n r h tcu e o ewo k s se i Wo k .T e t i l lsr ts s ,t e p p ra ay e r cp e a d a c i tr f t r y tm n Vx r s h n i ma ny i u t e i f h i e n l a h w t e eo ee h n e ew r e ie d v rb h x mp e o eRt 1 9 n a c d n t o k d v r t a ee e c o o d v l p t n a c d n t o k d v c r e y te e a l f h 1 3 C e h n e ew r r e .I h sar fr n e h i t 8 i
基 于 V Wok 的 网络设 备 驱 动 程序 开发 研 究 x rs
朱先伟 , 何 宏 ,汤 璐 ,李 晓伟 ,刘 君
( 天津理工大学 光电信息与电子工程 系,天津 30 9 ) 0 11 摘 要:首先从 整体上分析 了 V Wok x rs网络 系统的基本理论 与结构, 然后 以 R119 t 3 C网卡驱动程序的设 计为例 , 8 着重
B D43设 备 的驱 动 程 序 直 接 与 协 议 通 信 , S . 当 有数 据发送 或接 收 时 , 据 包 直 接在 B D 4 3设 备 数 S .
驱动程序和指定 的协议间传送 , 其通用性与广泛性
受 到约束 .而 S N E S设备驱 动程 序引进 了 MU X接 口
收稿 日期 : 0 51-1 2 0—01 . 基 金 项 目 : 津 市 自然 科 学 基 金 ( 5 FM C 3 0 ) 天 0 Y J J 1 10
最新小硕vxworks网络驱动开发笔记
目录第1章操作系统基本概念 (4)1.1实时操作系统和分时操作系统的区别 (4)1.2嵌入式操作系统VxWorks简介 (4)1.3 VxWorks的特点 (5)1.3.1可靠性 (5)1.3.2实时性 (5)1.3.3 可裁减性 (6)1.3.4对一个实时内核的要求 (6)1.4 VxWorks的整体构架 (7)第2章vxWorks驱动开发预备 (7)2.1 VxWorks映像 (8)2.2 BSP主要文件目录的组成及作用: (11)2.3系统启动顺序 (14)2.4 Vxworks驱动概要 (17)第3章vxWorks 网络驱动开发 (21)3.1驱动类别 (22)3.2 Vxworks 下网络驱动开发 (24)3.3 VxWorks网络驱动配置及分析 (60)第4章VxWorks系统中常见问题 (65)前言在通信,电子领域,目前主流的嵌入式操作系统为linux 和vxworks。
Linux 多用于消费电子产品,像大家熟悉的andriod,原始系统就是linux,也就是说andriod也是一种linux系统。
还有大家熟悉的MP3,也是使用linux操作系统的。
Linux因为价格便宜(开源的,不需要付licence),稳定性好占据了一定的市场份额。
Vxworks是风河系统1983开发的一款嵌入式实时操作系统,多用于通信,导航,航天等领域。
因为这些领域对实时性要求非常高,比如现在LTE 系统就是使用vxworks系统,因为是采用TDD模式,而这种模式,显然对实时性要求非常高。
也就注定了vxwroks 在这些领域的特有优势。
选择linux还是vxworks看自己的专业方向,还有自己的兴趣所有。
每个领域只要研究透彻,都是很有前途的。
既然两者都是主流的嵌入式操作系统,其还是有很多相似性。
小编也初步接触过linux,发现具备一定的linux基础对日后深入学习vxworks很有好处,很多思想都是相似的。
另外,本人系小硕,目前的研究领域是vxworks驱动开发,主攻网络驱动开发。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VxWorks网络驱动配置及分析VxWorks支持两种形式的网络驱动,一种是BSD驱动支持通用的BSD4.4网络,API,结构等和大多数BSD网络的驱动类似.另一种是END 网络驱动,是VxWorks独有的,根据VxWorks MUX接口编程,不过END驱动在底层也要转换成BSD的形式.VxWorks网络驱动可参见VxWorks网络驱动1.BSD4.4网络驱动设置.网络设备驱动的调用主要在/target/src/config/usrNetwork.c文件中,下面说明BSD4.4驱动在VxWorks系统调用.主要调用过程如下:VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中 usrRoot()=======>>target\src\config\usrNetwork.c文件中的usrNetInit( )通过数组表netIf[]初始化相应的BSD网卡驱动.在usrNetwork.c中的调用过程如下:usrNetInit()函数中调用usrNetIfAttach():#ifdef INCLUDE_BSDif (!attached){if ( (usrNetIfAttach (pNetDev, params.unitNum, pBootString) !=OK))return (ERROR);attached = TRUE;}#endif /*INCLUDE_BSD*/usrNetIfAttach ()函数中调用数组表usrNetIfTblfor (pNif = usrNetIfTbl; pNif->ifName != 0; pNif++){if (strcmp (buf, pNif->ifName) == 0)break;}网络BSD驱动数组表usrNetIfTbl在文件/target/src/config/usrNetwork.c中的定义初始化:...LOCAL NETIF netIf [] = /* 网络接口,定义网卡驱动 */{/* 下面是定义包含的各种网络驱动 */#ifdef INCLUDE_DC /* 从DEC 芯片启动,即系统有NVRAM存在,现在已过时*/{ "dc", dcattach, (char*)IO_ADRS_DC, INT_VEC_DC, INT_LVL_DC,DC_POOL_ADRS, DC_POOL_SIZE, DC_DATA_WIDTH, DC_RAM_PCI_ADRS,DC_MODE },#endif /* INCLUDE_DC */#ifdef INCLUDE_FEI /* 如果定义了INCLUDE_FEI,初始化Intel 网卡 */{ "fei", feiattach, (char*)FEI_POOL_ADRS, 0, 0, 0, 0},#endif /* INCLUDE_FEI */#ifdef INCLUDE_EX /* Excelan 网卡 */{ "ex", exattach, (char*)IO_ADRS_EX, INT_VEC_EX, INT_LVL_EX,IO_AM_EX_MASTER, IO_AM_EX },#endif /* INCLUDE_EX */#ifdef INCLUDE_ENP /* CMC 网卡 */{ "enp", enpattach, (char*)IO_ADRS_ENP, INT_VEC_ENP, INT_LVL_ENP, IO_AM_ENP },#endif /* INCLUDE_ENP */...}设置方法:从以上可以看出BSD网络驱动只需在BSP配置文件config.h中将网络(#define INCLUDE_NETWORK)BSD网卡宏定义(#define INCLUDE_xxx)和一些I/O参数(一般不需要)加入,则在文件usrNetwork.c中进行相应的初始化.如: 在VxWorks加入支持intel的网卡驱动.在config.h中加入"#define INCLUDE_FEI".主要网卡定义如下:#define INCLUDE_ENE /* include Eagle/Novell NE2000 interface */#define INCLUDE_ELT /* include 3COM EtherLink III interface */ #define INCLUDE_ESMC /* include SMC 91c9x Ethernet interface */#define INCLUDE_FEI /* include Intel Ether Express PRO100B PCI */#define INCLUDE_ELC /* include SMC Elite16 interface */#define INCLUDE_EEX /* include INTEL EtherExpress interface */#define INCLUDE_EEX32 /* include INTEL EtherExpress flash 32 */#define INCLUDE_EX /* include Excelan Ethernet interface */ #define INCLUDE_ENP /* include CMC Ethernet interface*/#define INCLUDE_SM_NET /* include backplane net interface */ #define INCLUDE_SM_SEQ_ADDR /* shared memory network auto address setup */#define INCLUDE_EL_3C90X_END /* 3com fast etherLink XL PCI */#define INCLUDE_LN_97X_END /* AMD 79C972 END DRIVER */....2.END网络驱动设置.END网络设备的初始化主要通过定义在文件configNet.h中的一个数组表实现.初始化网络时muxDevLoad()会按这个表的定义把end初始化安装到VxWorks 系统.主要调用过程:VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中 usrRoot()=======>>target\src\config\usrNetwork.c文件(该文件初始化TCP/IP)中 usrNetInit(BOOT_LINE_ADRS)(该函数作用是添加MUX END)========>>pcooki = pCookie =muxDevLoad(pDevTbl->unit,.....)其中pDevTbl在BSP网络配置文件configNet.h中定义.END_TBL_ENTRY endDevTbl[]={...},该表定义了网络设备的具体参数.configNet.h部分定义如下所示:#define DEC_LOAD_FUNC dec21x40EndLoad /* 定义加载网络设备的入口程序*/#define DEC_BUFF_LOAN 1/* 网络设备硬件的物理定义数据串,一般BSP已经定义,不到必要时,无需更改*//** <devAdrs>:<PCIadrs>:<ivec>:<ilevel>:<numRds>:<numTds>:<memBase>: \ * <memSize>:<userFlags>*/# define DEC_LOAD_STRING"0x81020000:0x80000000:0x12:0x12:-1:-1:-1:0:0x80800000"IMPORT END_OBJ* DEC_LOAD_FUNC (char*, void*);/* 网络END设备表 */END_TBL_ENTRY endDevTbl [] ={ 0, DEC_LOAD_FUNC, DEC_LOAD_STRING, DEC_BUFF_LOAN, NULL, FALSE}, { 0, END_TBL_END, NULL, 0, NULL, FALSE},};设置方法:由以上可看出在VxWorks添加END网络驱动1.在文件config.h中添加"#define INCLUDE_NETWORK"和"#defineINCLUDE_END".2.在configNet.h中加入END驱动的入口函数"#definexxx_LOAD_FUNC xxxxxEndLoad"和一些相关的初始化字符串.这样就会在生成BSP包含END/MUX,系统网络初始化调用函数muxDevLoad()会更据这个表初始化END网络.文件configNet.c关于END驱动初始化的主要内容:#ifdef INCLUDE_ENDIMPORT int ipAttach ();IMPORT END_TBL_ENTRY endDevTbl[]; /* 定义这个表 */#endif /* INCLUDE_END */..........#ifdef INCLUDE_ENDint count;END_TBL_ENTRY* pDevTbl; /* END设备列表 */END_OBJ* pCookie = NULL;END_OBJ* pEnd;#endif /* INCLUDE_END */#if defined(INCLUDE_END)muxMaxBinds = MUX_MAX_BINDS; /* 初始化MUX接口 */if (muxLibInit() == ERROR)..........关于DEFAULT_BOOT_LINE 的解释这一行对配置网络,连通Target Server及下载调试程序非常重要DEFAULT_BOOT_LINE的原意是为没有NVRAM的target设计的,这样用户就不需要在每次系统启动是手工输入这些参数了.系统启动网络时xxxEndLoad()会解释这一行并按这一行的定义进行加载.Emac(0,0) : 启动设备,可是是软盘,硬盘,PCMCIA卡等其他的设备名称如:fd为软盘,(0,0)表示第一个软驱,3.5寸盘.dc则表示从DEC 21x4x 芯片启动,即系统有NVRAM存在,这种方式现在已不采用. elpci表示启动设备为3COM EtherLink XL PCI网卡.fei:Intel 82559 EtherExpress网卡.ene: NE2000网卡ELT: 3COM以太网卡EEX: Intel网卡ata: ATA/IDE 硬盘 ............405GP: 主机名vXworks从主机加载的VxWorks文件h=172.16.1.159 主机的IP地址e=172.16.254.52 目标机的IP地址,若网络启动Target Server时,这个IP必须和主机上Target Server配置的Target IP地址一致,且设置Back End选项为wdbrpcu=xxx 用户名,pw=xxx 密码: 若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同tn=vxTarget 目标机名称*/#define DEFAULT_BOOT_LINE \"Emac(0,0)405GP:vxWorks h=172.16.1.159 e=172.16.254.52 \u=xxx pw=xxx tn=vxTarget"高智商学生 ( Thu, 1 Jun 2006 20:32:04 +0800 )Description:某日,老师在课堂上想看看一学生智商有没有问题,问他:“树上有十只鸟,开枪打死一只,还剩几只?”他反问:“是无声手枪或别的无声的枪吗?”“不是。