基于VxBus的设备驱动开发
vxWorks设备驱动开发指南(2)
vxWorks设备驱动开发指南(2)vxWroks 6.8设备驱动开发指南――写具体类设备驱动3 DMA驱动3.1 简介本章描述了DMA驱动。
3.2 概要有些硬件设计包括一个通用DMA引擎,处理来自DMA的访问,或到外部设备,或从内存到内存。
这些DMA引擎通常集成在片上CPU系统中。
DMA驱动类为系统中其它设备提供DMA引擎服务的一套标准方法。
提供的vxbDmaLib库提供用于DMA引擎。
这个DMA库提供的函数是vxbDmaChanAlloc( )和vxbDmaChanFree( )。
3.3 VxBus驱动方法由vxbDmaLib库提供的函数充分使用三个VxBus驱动方法:■?{vxbDmaResourceGet}( ) {vxbDmaResourceRelease}( ) {vxbDmaResDedicatedGet}( )■?■?DMA驱动通过这些方法的关联函数提供对它们服务的访问。
3.3.1 {vxbDmaResourceGet}( ){vxbDmaResourceGet}( )方法用于DMA库来分配一个DMA驱动管理的设备上的DMA通道。
原型如下:STATUS {vxbDmaResourceGet} (VXB_DEVICE_ID pInst, VXB_DEVICE_ID pReqDev, VXB_DMA_REQUEST * pReq )这个原型,pInst指DAM设备本身,pReqDev指请求一个DMA通道的设备,和pReq是一个指针,指向一个结构,描述DMA通道的期望的属性。
VXB_DMA_REQUEST结构定义在:installDir/vxworks-6.x/target/src/hwif/h/util/vxbDmaDriverLib.h 结构定义如下:typedef struct vxbDmaRequest {VXB_DEVICE_ID instance; /* DMA requestor device id */ UINT32 minQueueDepth; /* minimum queue depth requested */UINT32 flags; /* flags used during DMA allocation */VXB_DMA_RESOURCE_ID pChan; /* DMA channel id */ void * pDedicatedChanInfo; /* dedicated channel information */ } VXB_DMA_REQUEST;这个结构很大程度上对应传递给vxbDmaChanAlloc( )的参数。
PPC4XX平台下VxWorks嵌入式USB驱动程序开发
1 V Wo k B 主 机 驱 动栈 结 构 x rs US
Vx r s US Wok 下 B主 机 驱 动 栈 框 架 结 构 如 图 1 。 图 l中 ,在 栈 的 最底 层 是 US B HC,是 主 系 统 中控 制 每 一 个 U B 的硬 件 部分 。目前 ,市 场 上 主要 S 有 2大 类 US 主 控 制 器 : 一种 是支 持 由 itl 司 B ne 公
/ Re d n a a d s o e a h ie d n t PCI t r e c f l i he c onfgu a i n he de . / i r to a r
图 2 V wok x rs系 统 US 块 设 备 结 构 B
pCf Hdr>v nd I g - e ord pCf H d 一 e c I g r>d vi e d = 0 02 x0 2;
/ B u m be e c s nu r of d vi e
U I T8 d vi e o / D e c n N e cN , vi e um be of r de c / vi e U I T8 f N unc o / N , Fu ton nu be of nc i m r
康 柏 和 国家 半 导 体 公 司联 合 设 计 提 出的 开放 主 控制 器 接 口 ( p nh s c nrl ritrae o e ot o t l efc ,OH I 。笔 oe n C) 者 采 用 的 是 开 放主 控 制 器 接 口, 对 这一 类 型 的 主控 制 器 , 一 个 与硬 件 独 立 的 US 有 B主 控 制 器 驱动 ( ot hs c nrl r r e o t l d i r, H D ), 主 要 代 码 段 在 oe v C
基于VxWorks的网卡驱动程序开发
Pr o g r a mmi n g o f Ne t wo r k Ad a p t e r Dr i v e r Ba s e d o n Vx Wo r ks
ZH ANG Y u— k u n, YU AN Do n g- l i , H UA NG Xi n-x i n, Y AO J i a n-x u n
g r a m, wh i c h h e l p s t h e d e s i g n e r t o f o c us o n d e v e l o p i n g t h e d r i v e r a nd g i v e s t h e d r i v e i n d e p e n d e n c e , S O u s e hi t s d iv r i n g mo d e f o r s u c c e s s f ul i mp l e me n t a t i o n o f i n t e 1 8 2 5 6 7 NI C d r i v e r . Th i s s p e c i a l d r i v i n g mo d e r e l f e c t s t h e e ic f i e n c y i n t h e a p p l i c a t i o n p r o c e s s wi t h l f O c a r e a b o u t t h e u n d e r l y i n g d iv r e c on v e r s i o n a n d p r o t o c o l p r o c e s s i n g, a n d ma y h a v e a r e f e r e n c e v a l u e f o r he t s h o r t p e r i o d d e s i g n i n g o f END.
基于龙芯1E1F航天应用平台与VxWorks系统的VxBus型驱动设计
计算 机 测 量 与 控 制 .2018.26(5) 犆狅犿狆狌狋犲狉 犕犲犪狊狌狉犲犿犲狀狋 牔 犆狅狀狋狉狅犾
测பைடு நூலகம்软件工程
文章编号:1671 4598(2018)05 0102 05 DOI:10.16526/j.cnki.11-4762/tp.2018.05.026 中图分类号:TP277 文献标识码:A
基 于 龙 芯 1犈1犉 航 天 应 用 平 台 与 犞狓犠狅狉犽狊系统的 犞狓犅狌狊型驱动设计
邹玉龙,刘 彬,田小莉,郭宗芝,牛 崇
(上海微小卫星工程中心,上海 201210)
摘要:分析了 VxWorks系统中 VxBus型驱动的组成和一般设计过程,对串口、时钟等 VxWorks系统自带 VxBus型驱动的设备进行 了配置,对龙芯1E 芯片的中断控制器驱动进行了分层设计,在 VxWorks原有的 MIPS中断控制器驱动基础上,增加了专门针对 龙 芯 1E 和龙芯1F 的中断控制器驱动,并且3个中断控制器驱动通过设备配置文件相互关联,实现了中断服 务 程 序 的 嵌 套 调 用; 对 龙 芯 1F 接 口 芯片上的智能1553B 功能单独设计了一个 VxBus型驱动,并通过设计驱动方法的方式向应用层提供了驱动的使用接口,屏蔽了 底 层 硬 件 细节,简化了应用层的设计;实验结果表明在龙芯1E1F 航天应用平台上进行 VxBus型驱 动 设 计 使 得 软 件 结 构 更 加 清 晰, 系 统 移 植 的 难 度大大降低,并且简化了应用层软件设计,对航天领域基于龙芯和 Vxworks系统的开发设计具有较高的参考价值。
(ShanghaiEngineeringCenterforMicrosatellites ,Shanghai 201210,China) 犃犫狊狋狉犪犮狋:AnalyzedthestructureofVxBusdriverandthenormaldesignprocedureofVxBusdriveronVxWorkssystem.Configuredthe VxBusdiverwhichisalreadysupportedbyVxWorks,suchastheserialandtheclockdriver.Thedesignofinterruptisdividedintothreelay ers,the MIPSinterrupt,theLoongson1EinterruptandtheLoongson1Finterrupt.Thethreeinterruptlayersarenestedandconnectedby boardsupportpackage (BSP)hardwareconfiguration.Designedasmart1553BVxBusdirvertousethe1553BfunctionsupportedbyLoong son1F.Applicationlayercancallthedrivermethodstoperform1553Bfunctioneasilyandignorethehardwaredetails.Theresultshowsthat VxBusdesignonLoongsonaerospaceplatformsimplifythesoftwaredesignofapplicationlayerandmakesthesoftwarestructuremuchmore clearandthesystem plantingeasier.TheVxBusdriverdesign methodhashighvalueforaerospaceengineeringbasedonLoongsonand Vx Workssystem. 犓犲狔狑狅狉犱狊:Loongsonprocessor;VxWorks;VxBus
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
基于VxBus架构的温度监控模块实现
精 确 地 监 控 处 理 器 的热 工 作 状 态 , 及 时处 理 散 热 失 效 问 题 。
1 硬 件 组成
控 本 地 温 度 与 处 理 器 内部 温 度 信 息 。 另 外 , 将告警 信号 A L E R T
连接至 P 2 0 4 1 处 理 器 中 断管 脚 ,一 旦 高低 温 超 出设 置 阈 值 , 立
Wo r k s操 作 系统 环 境 下 其他 温 度 监控 模 块 的 实现 具 有 一 定 的 参 考 意 义 。
关键词 : V x Wo r k s , V x B u s , A D T 7 4 6 1 , 温 度 监 控
Ab s t r ac t : Th i s p ape r i n t r odu ce s a des i gn m e t ho d o f t he t e m per a t u r e mon i t o r i n g s v s t e m ba s ed o n ADT 74 61 c hi p an d
5 8
基于V x B u s架 构 的温 度 监 控 模 块 实 现
基于 V x B u s 架构的温度监控模块实现
Re a l i z a t i o n o n T e mp e r a t u r e Mon i t o r i n g Mo d u l e Ba s e d 处 理 板 上 A D T 7 4 6 1芯 片 被 布 置在 高发 热 区对 本 地 温度 进 行 温 度采 集 ,同时 将 P 2 0 4 1处 理 器 的 AN OD E 与 CA T H ODE管 脚 分 别 与 A D T 7 4 6 1芯 片 上 的 D+和 D~ 引 脚 连 接, 使 能 AD T 7 4 6 1 芯 片采 集 P 2 0 4 1处 理 器 的 内 部 温 度 , 实 时 监
基于VxBus的驱动程序架构分析
第31卷第2期2 0 1 2年6月计 算 技 术 与 自 动 化ComutinTechnoloandAutomationVol.31,No.2 Jun.2 0 1 2收稿日期:2012-05-13作者简介:付月生(1984-),男,湖北武汉人,工程师,硕士,研究方向:嵌入式系统开发(E-mail:fysdlut@gmail.com);王 丽(1977-),女,湖北潜江人,工程师,硕士,研究方向:嵌入式设计。
文章编号:1003-6199(2012)02-0098-05基于VxBus的驱动程序架构分析付月生,王 丽(中船重工第722研究所基础平台专业部,湖北武汉 430079) 摘 要:VxBus设备驱动架构是VxWorks操作系统中引入的最新概念,风河公司在VxWorks 6.2中加入这个架构以来,不断完善,到目前的VxWorks 6.9,设备驱动程序的开发基本上都采用VxBus架构。
VxBus驱动程序架构是VxWorks操作系统未来驱动程序发展的方向,也是设计VxWorks操作系统中设备驱动的必经之路。
本文分析VxBus设备驱动架构的优点,VxBus组成结构以及基于VxBus架构的设备驱动开发流程。
关键词:VxBus;设备驱动程序;VxWorks中图分类号:TP316.2 文献标识码:AThe Driver Structure Analysis Based on VxBusFU Yue-sheng,WANG li(The 722th Institute of China Shipbuilding Industry Corporation,Wuhan 430079,China) Abstract:The VxBus device driver structure is fairly new to VxWorks,having been added in VxWorks release 6.2byWindRiver.Now in the VxWorks release 6.9,Basically all the development of device driver use the VxBus structure.VxBusstructure is the direction of the device driver development in VxWorks,also,it's the only way to design driver in VxWorks.This paper analyze the advantage of VxBus structure,the component of VxBus and the device driver development processbased on VxBus structure.Key words:VxBus;device driver;VxWorks1 引 言VxBus是风河公司VxWorks操作系统的最新设备驱动程序架构,在VxWorks6.2系统中首次引入。
VxBus的A429接口驱动
V x B u s用 以替代 V x Wo r k s传统 的驱动架构¨ J . V x B u s 驱动采用模块化的设计思想,降低 了驱动对 B S P的依 赖度,并且使驱动 的配 置和移植更加灵活和方便. A RI NC 4 2 9 总线是 民用 飞机上最常用 的一种数据 总线.它采 用差分 的工作方式,具有 结构简 单、 可靠性 高和抗 干扰性强 的特点.主要 于飞机航 电设备数据传
Ke y wo r d s : Vx Bus ; VxW o r k s ; A C4 2 9; d r i v e r
V x B u s 是 一种基 于 V x Wo r k s 操作系统全新的驱动
架构, Wi n d r i v e r公司从 V x Wo r k s 6 . 2版本开始加入
i mp l e me n t o f v x Wo r k s d r i v e r b a s e d o n V x B u s h a s a h i 曲 d e g r e e o f r e l i a b i l i t y nd a e x p ns a i b i l i t y .
2 O l 4年 第 2 3卷 第 1 2期
h t t p : / / w w w c — S ・ a . o r g . c n
计 算 机 系 统 应 用
V x B u s 的 A4 2 9接 口马 区 动①
刘 宇,唐法荣
( 中 电科 航 空 电子 有 限公 司 ,成 都 6 1 1 7 3 1 )
应用程序通过使用 V x B u s 的驱动方法可 以实现对硬件 设备 的操作,V x B u s驱动方法实现 了应 用程序 和设备 硬件 之间 的控制命 令和数据等信 息 的传 递, 对应 用程 序屏 蔽 了底层 的硬 件操作,并且应 用程序可 以实现对
vxWorks下设备驱动模板
DEVICEProbe
},
NELEMENTS(DEVICEDevIDList),
DEVICEDevIDList
}; /*pci 设备 end*/
/*plb 设备 start*/
LOCAL struct vxbPlbRegister DEVICERegistration =
{
{
NULL,
/* pNext,
DEVICEIntDisable(pDev->pDrvCtrl); /* 清中断 */
DEVICEIntClear(pDev->pDrvCtrl); /* 挂接中断 */
if(vxbIntConnect(pDev,0,DEVICEInt,(void *)(pDev->pDrvCtrl)) != OK) {
一般都用 NULL */
VXB_DEVID_DEVICE, /* devID,
固定 , 表示这是一个设备 */
VXB_BUSID_PLB, /* busID = PLB ,
表示这个设备挂接在 PLB上 */
VXBUS_VERSION_4, /*
版本号 ,6.7 为版本 4 */
DEVICE_CARD_VXBNAME, /*
.
.
/* UINT16 subDevId; UINT32 hwRev;*/ int i; DEVICE_STRUCT *pDrvCtrl; pDrvCtrl = pCev->pDrvCtrl;
VXB_PCI_BUS_CFG_READ (pDev, PCI_CFG_VENDOR_ID, 2, &venId); VXB_PCI_BUS_CFG_READ (pDev, PCI_CFG_DEVICE_ID, 2, &devId);
VxWorks内核、设备驱动与BSP开发详解(附光盘)
VxWorks内核、设备驱动与 BSP开发详解张杨于银涛编著人民邮电出版社北京内容提要在嵌入式行业飞速发展的今天,嵌入式操作系统的应用越来越广泛,VxWorks具有良好的实时性,被大量应用于航空、通信、国防、工业控制、网络设备、医疗设备、消费电子等嵌入式实时应用领域。
本书共24章,按照初学者学习的一般步骤,详细介绍了VxWorks的开发环境、内核分析和应用程序开发、驱动程序开发与原理和板级支持包流程与移植,每章均配以实例进行讲解。
本书语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校嵌入式相关专业学生学习参考,也可供嵌入式开发人员和系统设计人员参考使用。
VxWorks内核、设备驱动与BSP开发详解♦编著张杨于银涛责任编辑黄焱审校华清远见嵌入式培训中心♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子函件 315@网址 三河市海波印务有限公司印刷♦开本:800×1000 1/16印张:24.75字数:520千字2009年10月第1版印数:1 – 3 000册2009年10月北京第1次印刷ISBN 978-7-115-21292-4定价:49.00元(附光盘)读者服务热线:(010)67132692 印装质量热线:(010)67129223前 言行业背景嵌入式系统应用已经深入到我们生活中的各个领域,手机、机顶盒、MP4、交换机、路由器等都可以归结为嵌入式设备。
在这些嵌入式设备中,有一部分设备需要功能强大、实时性强的操作系统,VxWorks正是这类操作系统中的佼佼者。
从VxWorks 5.4 进入中国以来,已经过去了十多年,VxWorks在国内的应用不但没有减少,反而呈现了面向架构多、应用范围广、民用化的特性,越来越多的嵌入式设备转而采用VxWorks实现。
关于本书随着VxWorks应用逐渐广泛,相关书籍却不多。
本书结合作者在VxWorks的多年工作经验,仔细描述了实际开发过程中可能遇到的一些问题,并深入分析VxWorks系统的工作机制,旨在希望能够给刚接触VxWorks的初学者及对VxWorks有一定了解的朋友提供一些帮助,为熟悉VxWorks的朋友提供分析问题、设计软件的途径和思路。
第十一章:vxWorks的设备驱动开发(2)
2010-12-29
1
11.1 命名设备驱动(CHAR) 命名设备驱动(CHAR)
设备驱动描述 设备驱动管理 设备驱动设计
2010-12-29
2
设备驱动描述
由于操作系统的IO管理通过设备列表管理方式维护和 由于操作系统的IO管理通过设备列表管理方式维护和 调用特定设备驱动实现设备管理,因此通过用特定的字 符串名称描述设备,同时按照IO系统的要求设计功能 符串名称描述设备,同时按照IO系统的要求设计功能 函数,以命名方式保证操作系统管理实现。 对大部分的端口设备或数据流设备都可以遵循CHAR设 对大部分的端口设备或数据流设备都可以遵循CHAR设 CHAR 备驱动的设计方式 在实时要求受限或者硬件过于简单情况下可以考虑API 在实时要求受限或者硬件过于简单情况下可以考虑API
static SIO_DRV_FUNCS fooSioDrvFuncs = { fooIoctl,fooTxStartup,fooCallbackInstall,fooPollInput,fooPollOutput }; void fooDevInit (FOO_DRV * pFooDrv) { /* initialize driver function pointers */ pFooDrv->portA.pDrvFuncs = &fooSioDrvFuncs; /* install dummy driver callbacks */ pFooDrv->portA.getTxChar = fooDummy; pFooDrv->portA.putRcvChar = fooDummy; … }
11 vxWorks的设备驱动开发(2) vxWorks的设备驱动开发 的设备驱动开发(
小硕vxworks网络驱动开发笔记(汇编)
目录第1章操作系统基本概念 (3)1.1实时操作系统和分时操作系统的区别 (3)1.2嵌入式操作系统VxWorks简介 (4)1.3 VxWorks的特点 (5)1.3.1可靠性 (5)1.3.2实时性 (5)1.3.3 可裁减性 (5)1.3.4对一个实时内核的要求 (6)1.4 VxWorks的整体构架 (7)第2章vxWorks驱动开发预备 (7)2.1 VxWorks映像 (8)2.2 BSP主要文件目录的组成及作用: (11)2.3系统启动顺序 (13)2.4 Vxworks驱动概要 (17)第3章vxWorks 网络驱动开发 (20)3.1驱动类别 (21)3.2 Vxworks 下网络驱动开发 (24)3.3 VxWorks网络驱动配置及分析 (59)第4章VxWorks系统中常见问题 (64)前言在通信,电子领域,目前主流的嵌入式操作系统为linux 和vxworks。
Linux多用于消费电子产品,像大家熟悉的andriod,原始系统就是linux,也就是说andriod也是一种linux系统。
还有大家熟悉的MP3,也是使用linux 操作系统的。
Linux因为价格便宜(开源的,不需要付licence),稳定性好占据了一定的市场份额。
Vxworks是风河系统1983开发的一款嵌入式实时操作系统,多用于通信,导航,航天等领域。
因为这些领域对实时性要求非常高,比如现在LTE 系统就是使用vxworks系统,因为是采用TDD模式,而这种模式,显然对实时性要求非常高。
也就注定了vxwroks 在这些领域的特有优势。
选择linux还是vxworks看自己的专业方向,还有自己的兴趣所有。
每个领域只要研究透彻,都是很有前途的。
既然两者都是主流的嵌入式操作系统,其还是有很多相似性。
小编也初步接触过linux,发现具备一定的linux基础对日后深入学习vxworks很有好处,很多思想都是相似的。
另外,本人系小硕,目前的研究领域是vxworks驱动开发,主攻网络驱动开发。
基于VxBus的设备驱动开发
基于VxBus的设备驱动开发
VxBus是风河公司新的设备驱动程序架构,是VxWorks新增的特性,它是在VxWorks6.2及以后版本被增加到VxWorks中的。
在以前的版本中,驱
动程序并没有和工程配置集成到一起,如果要配置设备驱动,就要通过修改BSP目录下的config.h和syslib.c文件来完成。
而基于VxBus架构模型的好
处是允许驱动的集成和配置在Workbench工程中完成。
这就意味着在Workbench环境下,每个驱动程序都能通过可视化环境进行配置,都能够按
要求添加或删除设备。
本文结合基于PCI2040数据采集卡驱动的开发过程[1],分析了VxBus架构下驱动的设计实现。
1 VxBus简介
VxBus是指在VxWorks中用于支持设备驱动的特有的架构,这种架构包含对minimalBSP的支持。
它包括以下功能:①允许设备驱动匹配对应设备;②提供驱动程序访问硬件的机制;③软件其他部分访问设备功能;④在VxWorks系
统中,实现设备驱动的模块化。
VxBus在总线控制器驱动程序服务的支持下,能在总线上发现设备,并执行一些初始化工作,使驱动与硬件设备之间正常
的通讯。
图1是VxBus在整个系统中的位置示意图。
从图1中可以看到,VxBus起到了辅助总线的作用,提供了对总线控制驱动的支持。
一种基于vxBus的PPC与FPGA高速互联的驱动设计方法
一种基于vxBus的PPC与FPGA高速互联的驱动设计方法石炜;孟金芳【摘要】目前很多高实时性、高数据吞吐率、高灵活性的信号处理平台选择以vxworks为操作系统,PPC与FPGA之间以高速RapidIo为互连的组织架构。
很多时候,驱动设计者用对寄存器、内存直接访问的方式进行驱动的设计和开发,这种驱动设计方法管理混乱,不适宜驱动的模块化设计,不利于FPGA设备的抽象。
针对这些问题,本文基于Vx-Works的vxBus驱动开发模型,提出了一种PPC与FPGA间以高速RapidIo为互连的驱动设计方法,实现了FPGA设备的高抽象,大大有利于应用开发者对FPGA设备的透明调用,实现了驱动的模块化设计。
通过在以Mpc8641D为主处理器,V7 FPGA为预处理芯片的信号处理板上试验证明了该方法的可行性和有效性。
%Many signal processing platforms of highly real-time、high data throughput and high flexibility select the organiza-tional structure which uses vxworks as the operating system and high-speed RapidIo as the connection of PPC and FPGA. A lot of times, driver designers develop programs in the way of accessing registers and memory directly. This method of driver design has chaotic management, disagrees with the modular programming of drivers, goes against the abstraction of FPGA devices. To solve these problems, based on the driver developing model of vxBus in vxworks, this paper proposes a driver design which is used in the condition of high-speed RapidIo as the connection of PPC and FPGA, which achieves the aim of high abstractness of FPGA devices. It is conductive for the application developer to call FPGA devices transparently, and realizes the modular programming of drivers. A series of experimentshave been done on the signal processing platform of Mpc8641D as the main processor and V7 FPGA as the preprocessing chip, to prove the feasivility and effectiveness of the driver design method.【期刊名称】《电子设计工程》【年(卷),期】2015(000)024【总页数】4页(P139-141,145)【关键词】VxWorks;vxBus;RapidIo;驱动;模块化设计【作者】石炜;孟金芳【作者单位】通信信息控制和安全技术重点实验室浙江嘉兴 314033; 中国电子科技集团公司第三十六研究所浙江嘉兴 314033;中国电子科技集团公司第三十六研究所浙江嘉兴 314033【正文语种】中文【中图分类】TN332随着数字信号处理系统向着高实时性、高数据吞吐率、高灵活性的方向发展,目前很多信号处理平台选择以PPC 为处理器,vxWorks 为实时操作系统,FPGA 进行信号预处理,两者利用RapidIo 为通信链路的设计架构。
整理的vxworks中vxbus使用入门步骤
订阅此博客
/wyw1217@126/blog/static/166621683201302603757/
2013-4-24
最后一步 对于vxbus驱动来说,最后一步就是在instance、connect等函数中添加实际的驱动代码,这与一个普通的 vxworks驱动没有区别。 总的来说,vxbus只是给了一个驱动框架,使得我们驱动程序的添加更统一。
黑色神明
上帝正看着在呢。1礼 拜结束了。耳边还回荡 着唱诗班吟唱的旋律。 我感到心灵被涤荡,那 应该是主赐予我的平
最新日志
如何编写linux下nand fla... 如何编写linux下nand fla... 如何编写linux下nand fla... 如何编写linux下nand fla... vxworks中vxbus使用入... vxWorks6.6下基于VxBu...
随机阅读
任何权力都是成为富翁... 亚洲电影大奖颁奖 重磅... 【0318】叶道人挥剑砍... 外国女性如何舍身“套... 信孚要闻(3.20)——... 公示避孕方式:别用来...
基于Vxbus的大容量存储模块AHCI驱动开发
基于Vxbus的大容量存储模块AHCI驱动开发
陈康;翟正军;焦航
【期刊名称】《计算机测量与控制》
【年(卷),期】2013(21)8
【摘要】针对传统的IDE驱动程序不能有效地支持SATA盘数据传输和SATA协议高级功能等问题,在对实时操作系统VxWorks 6.8设备驱动框架(Vxbus)和原理进行了研究,并对AHCI协议内容进行了分析之后,实现了大容量存储模块的AHCI 驱动程序;AHCI驱动组件的形式加入VxWorks系统映像,保持了驱动的独立性;对驱动程序的测试结果表明,AHCI驱动大幅度提升了大容量存储模块的传输性能,具有广泛使用价值.
【总页数】4页(P2286-2289)
【作者】陈康;翟正军;焦航
【作者单位】西北工业大学计算机学院,西安 710072;西北工业大学计算机学院,西安 710072;西北工业大学软件与微电子学院,西安 710072
【正文语种】中文
【中图分类】TP31
【相关文献】
1.大容量机载记录模块AHCI驱动开发 [J], 盘勇军;张霄晔;任金牛
2.基于FPGA控制的高速大容量NAND FLASH存储模块设计 [J], 彭卓文;杨新民;王胜红
3.基于VxWorks的大容量多分区硬盘驱动开发 [J], 杨扬;杨智慧;于兴晗;李正熙
4.基于 VxBus和 MPC8569E千兆网驱动开发和实现 [J], 李丹
5.基于VxBus的设备驱动开发 [J], 赵永钢;韩国义
因版权原因,仅展示原文概要,查看原文内容请购买。
VxWorks下设备驱动程序开发技术研究
VxWorks下设备驱动程序开发技术研究陈怀民;王哲;程鹏飞;邵朋院【期刊名称】《现代电子技术》【年(卷),期】2015(000)010【摘要】开发嵌入式系统软件的关键是编写稳定可靠的设备驱动程序,VxWorks 下的设备驱动程序开发难度尤其大。
结合了多用于航空航天领域的嵌入式实时操作系统VxWorks的特点,详细描述VxWorks下的设备驱动程序的基本概念,以VxWorks下的板级支持包(BSP)作为比较对象,阐述设备驱动程序在整个嵌入式系统中的位置和结构,总结在系统上电后设备驱动程序的基本工作流程,最后以字符设备驱动程序为例演示驱动程序的工作流程,为VxWorks下设备驱动程序开发提供了技术途径。
%The key of software development of embedded system is to compile stable and reliable device driver,but thede⁃velopment of device driver in VxWorks is very difficult. According to characteristics of VxWorks using in field of aerospace,the basic concept of device driver in VxWorks is described,and the position and the structure of device driver in the embedded sys⁃tem are elaborated in this paper,which is compared with the board support package(BSP)in VxWorks. The basic workflow of device driver after power⁃on is summarized. Finally,the character device driver is taken as an example to demonstrate thework⁃flow of device driver. The research provided a technical approach for development of device driver in VxWorks.【总页数】4页(P38-41)【作者】陈怀民;王哲;程鹏飞;邵朋院【作者单位】西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065【正文语种】中文【中图分类】TN911-34;TP391.41【相关文献】1.嵌入式VxWorks系统下的CPCI设备驱动程序开发 [J], 唐力强;王行祥2.嵌入式操作系统VxWorks下CPCI设备驱动程序开发 [J], 杨飞;安锦文;李中健3.VxWorks下数据采集卡设备驱动程序开发 [J], 叶凯;杨文淑;启亮4.VxWorks下数据采集卡设备驱动程序开发 [J], 叶凯;杨文淑;启亮5.基于VxWorks操作系统的PCI设备驱动程序开发 [J], 常明志因版权原因,仅展示原文概要,查看原文内容请购买。
基于VxWorks的SD卡驱动程序的设计与实现
基于VxWorks的SD卡驱动程序的设计与实现
贺小琳;张善从
【期刊名称】《计算机工程与设计》
【年(卷),期】2010(031)016
【摘要】为了提高嵌入式实时操作系统下驱动开发的可扩展性、可升级性,研究了基于VxWorks6.x实时操作系统的VxBus虚拟总线技术.采用XBD(extended block device)程序设计工具,作为连接设备驱动和VxWorks文件系统之间的接口,通过开发以XBD为接口的SD卡块设备驱动,表明了VxBus虚拟总线技术能够有效的对设备驱动进行管理,提高了VxWorks开发的性能,并且实现了对SD卡的MS-DOS FAT32文件系统加载.
【总页数】4页(P3573-3575,3674)
【作者】贺小琳;张善从
【作者单位】中国科学院光电研究院,北京,100190;中国科学院研究生院,北
京,100049;北京国科环宇空间技术有限公司,北京,100190;中国科学院光电研究院,北京,100190;中国科学院研究生院,北京,100049;北京国科环宇空间技术有限公司,北京,100190
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.基于VxWorks的PCI设备驱动程序设计与实现 [J], 蒋景红;冯欣欣;何国建;蔡惠智
2.VxWorks5.5下电子盘DMA驱动程序设计与实现 [J], 尹加豹
3.嵌入式系统 VxWorks 串口驱动程序的设计与实现 [J], 张安青
4.VxWorks下驱动程序的设计与实现 [J], 冯勇
5.基于嵌入式Linux的SD卡驱动程序的设计与实现 [J], 邵自然;吕格莉
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 驱动开发 基于VxBus架构下PCI2040设备驱动的开发主要包括设备的初始化、设备控制以及设备驱动如何以组件形式添加到Workbench配置界面中。下面分步介绍它的实现。3.1设备驱动初始化 设备的初始化,包含在BSP的初始化过程中[3],主要分三个阶段,。
3.1.1内核预初始化阶段 系统上电启动,CPU在上电时跳转到一个指定的地址 ,开始执行指令,初始化内存和CPU,然后是VxWorks 的初始化处理。 在VxWorks内核预初始化早期,BSP的sysHwInit( )函数被执行[4],在这个函数中,设备驱动初始化工作第一步被执行。sysHwInit( )函数执行一些早期的初始化,调用hardWareInterFaceInit( )函数,执行初始化硬件内存分配机制,这步允许在系统内存池初始化之前,限制为设备驱动分配内存,这个函数接着调用hardWareInterFaceBusInit( ),在hardWareInterFaceBusInit( )函数中完成所有设备驱动和模块的注册工作。PCI2040的注册函数是vxbPci2040Register()。vxbPci2040Register()通过数据结构,向系统注册一些设备初始化函数。其中涉及到三个数据结构:LOCAL struct drvBusFuncs PciFuncs = { Pci2040InstInit, /* devInstanceInit */ Pci2040InstInit2, /* devInstanceInit2 */ Pci204InstConnect /* devConnect */ } 在这个结构中,包含了初始化阶段要调用的函数。下面的初始化过程会用到这些函数。LOCAL struct vxbDeviceMethod Pci2040Methods[] = { DEVMETHOD(ReadHPID, PCI2040ReadHPID), DEVMETHOD(WriteHPID, PCI2040WriteHPID), DEVMETHOD(ReadHPIA, PCI2040ReadHPIA), DEVMETHOD(WriteHPIA, PCI2040WriteHPIA), DEVMETHOD(ReadHPIC, PCI2040ReadHPIC), DEVMETHOD(WriteHPIC, PCI2040WriteHPIC), DEVMETHOD(ReadCSR, PCI2040ReadCSR), DEVMETHOD(WriteCSR, PCI2040WriteCSR), { 0, 0 } } 这个结构提供了应用软件操作硬件的一些函数及方法。 LOCAL struct vxbPciRegister Pci2040DevPciRegistration = { { NULL, /* pNext */ VXB_DEVID_DEVICE, /* devID */ VXB_BUSID_PCI, /* busID = PCI */ VXB_VER_4_0_0, /* vxbVersion */ LNPCI_NAME, /* drvName */ &Pci2040Funcs, /* 总线驱动函数*/ Pci2040Methods, /* 设备方法结构 */ Pci2040Probe, /* 设备探测函数 */ Pci2040ParamDefaults /* 参数*/ }, NELEMENTS(PciPci204DevIDList), PciPci204DevIDList /*设备资源列表*/ }; 最后这个结构在vxbPci2040Registe()中被使用。这个结构包括几个驱动的初始化入口,其中Pci2040Probe()是PCI2040采集卡的硬件探测函数,该函数在VxBus初始化过程中检测采集卡的数量,当检测到采集卡时,将采集卡与驱动结合,形成设备的一个实例,以便应用程序使用。Pci204InstanceInit( )函数在VxBus初始化的第一阶段被调用, Pci204InstanceInit( )函数只是简单地确保设备的中断被禁止。 当所有驱动在VxWorks注册之后,hardWareInterFaceBusInit( )和hardWareInterFaceInit( ) 函数返回,sysHwInit( ) 完成非VxBus 驱动的初始化并返回。sysHwInit( ) 函数返回后,VxWorks内核被初始化。3.1.2 内核自检 在这个阶段,内核在sysHwInit2( )中执行,BSP调用Pci2040InstanceInit2( )函数[5]。在这个函数中,建立系统内存到设备空间的映射。关键部分代码如下:LOCAL void Pci204InstInit2(VXB_DEVICE_ID pDev) {…… for (i = 0; i < VXB_MAXBARS; i++) { if (pDev->regBaseFlags[i] == VXB_REG_IO) break; } if (i == VXB_MAXBARS) return; pDrvCtrl->Pci2040Bar = pDev->pRegBase[i]; vxbRegMap (pDev, i, &pDrvCtrl->Pci2040Handle); //设备I/O映射到系统内存 …… } 此时,完成内核服务初始化,并可以被驱动访问。但是,中间层的服务仍然无效。3.1.3 应用程序初始化驱动部分 在devInstanceInit2( )函数最后,创建用户的运行任务,并完成设备驱动的初始化。在这个阶段,Pci2040InstanceConnect( )函数被调用,完成最后的初始化工作,在这个函数中,主要是建立中断与中断服务程序的连接。 至此,设备驱动的初始化完成。3.2驱动程序的配置 采用VxBus驱动的一个主要优点是:设备的驱动程序可以被看成VxWorks 系统的一个组件,通过集成的Workbench开发环境来配置设备驱动。为了实现这一功能,开发的驱动需要增加一些额外的扩展文件。标准VxWorks设备驱动有一个最小的文件集,对于大多数VxWorks设备驱动,最小的设备驱动集要求有6个单独的文件[6]。PCI2040数据采集卡需要有以下文件: · 一个驱动源文件PCI2040.c,执行驱动运行逻辑,包括PCI2040驱动的实现代码。 · 一个组件描述文件PCI2040.cdf,允许集成驱动到VxWorks开发工具Workbench当中。 · 一个PCI2040.dc文件,提供驱动注册函数原型。 · 一个PCI2040.dr文件,提供一个调用注册函数的C语言代码段。 · 一个readme文件 ,提供版本信息。 · 一个makefile 文件,提供建立驱动的编译规则。 当上述文件在workbench环境下进行相应的配置后,PCI2040的设备驱动就会以组件的形式出现在开发工程的Kernel Configuration选项中,可以方便地进行PCI2040驱动配置。4 应用程序与驱动的通信 为了使设备和驱动能够在VxWorks系统中使用,让应用程序、中间件、VxWorks内核模块访问设备,执行一些操作,最基本的方法是在VxWorks中采用VxBus方法来实现硬件设备的访问。VxBus方法是在驱动中公开一个入口,使VxBus中API函数可以调用这些入口函数。在PCI2040初始化阶段,Pci2040Methods结构中注册的函数就是在驱动中公开的函数,用于对PCI2040的操作。 例如,通过PCI2040 完成对DSP数据寄存器的访问 struct vxbDriverControl ctrl; vxbDevMethodRun(DEVMETHOD_CALL(ReadHPID),&ctrl); vxbDevMethodRun( )函数够被用于调用一个指定的驱动方法,这个函数反复查找所有的实例,并检查每一个,看是否有指定公开申明的方法,如果实例有指定的方法,vxbDevMethodRun( )调用方法函数。 为了避免重复遍历在系统上的所有实例,可以用 vxbDevMethodGet( )函数找出驱动函数相对应的驱动方法 ,然后通过下面代码完成函数调用。 STATUS (*methodFunc)(VXB_DEVICE_ID devID, void * pArg); methodFunc = bDevMethodGet(devID,DEVMETHOD_CALL(ReadHPID)); if(methodFunc != NULL ) (*methodFunc)(devID, pArg); 在PCI2040的数据采集卡中,通常是DSP在采集完数据后,通过中断通知主机,去读取数据。下面是中断服务相关代码。void PCI2040Isr(){ …… temp=*(PCI2040. instID.pRegister+0x4); //读中断寄存器 if((tempr&0x1)!=0) //检查是否是该实例中断 { *(PCI2040. instID.pRegister +0x4)=0x1; temp= *(PCI2040. instIDpDspHpicRegister); *(PCI2040. instIDpDspHpicRegister)=temp|0x0808; //通知DSP,清除HINT中断 semGive(semForPci2040Int); }} 采用基于VxBus架构来开发PCI2040数据采集卡的驱动,通过扩展文件实现驱动的配置。与简单的非VxBus驱动相比,显然增加了工作量,然而对于基于多个BSP设备的复杂的驱动,VxBus驱动是优于非VxBus驱动的。通过实际运用证明,所开发采集卡的驱动能够稳定运行,并且能很方便地将该驱动移植到其他的系统。
基于VxBus的设备驱动开发
摘 要: 介绍了在VxWorks下,基于VxBus的设备驱动程序的开发。结合PCI2040,讲述了VxBus原理、设备驱动开发步骤及具体实现过程。关键词: VxWorks; VxBus; 设备驱动; BSP; PCI2040