- 博客(0)
- 资源 (9)
- 收藏
- 关注
WindRiver Workbench Chinese help
风河 Workbench
产品介绍
风河 Workbench 是设备软件业首选的开放
式、基于标准的开发套件。通过其性能、集
成及实用性的强劲组合,Workbench 不仅能
使企业在通用环境下的设备软件开发更趋
标准化,而且还能够显著提高开发人员、项
目团队和企业的工作效率。
Workbench 提供了:
* 开发过程的每一阶段都具有最佳性能,包
括硬件生成、固件开发、应用软件开发和测
试
* 强大的功能——目标击于设备软件开发
过程和测试过程的主要挑战
* 支持跨项目标准化的广泛实用性
- 多 目 标 操 作 系 统 支 持 , 包 括 对
VxWorks6.x、Linux 以及 ThreadX 的支持
- 目标机处理器支持 ARM、ColdFire、
IA/Pentium、MIPS、PowerPC、SH以及XScale
处理器
- 插件架构,可添加其它目标机操作系统、
目标机处理器以及目标机连接支持
* 基于 Eclipse 的可扩展框架——能够为可
裁剪性和完全用户化而无缝集成第三方和
专用内部插件
该开发套件使得开发人员和项目小组通过
提高生产效率而轻松应对各种挑战,它使得
软硬件开发人员能够密切协作,并满足了整
个企业间各种各样的开发需求。Workbench
还包括风河 20 余年的行业经验、全球级的
技术支持机构以及专业的服务小组等。
风河 Workbench 2.4 的新增内容
Workbench 2.4 包括了一些在提高开发小组
生产效率方面的重大新功能:
* 一般 Workbench 增强:
- 更新至了 Eclipse 3.1
- 编辑器代码折叠
- 重构支持源代码分析
- 支持远程编译
* VxWorks 平台集成
- 扩展的 VxWorks 6.2 处理器支持
- VxWorks 可裁剪性支持
- 基于 TIPC 的分布式调试能力
* Linux 平台集成
- 扩展的处理器支持
* 芯片级调试
- 扩展的处理器支持
- 用于 ARM、ColdFire、MIPS、PowerPC
以及 Xscale 的已知 VxWorks 芯片级调试
(VxWorks 5.5 和 VxWorks 6)
* 新的 Workbench 产品
- 用于 VxWorks 的 Workbench Unit Tester
* 显著降低了代码测试时间,并通过自动化
操作提高了一致性
* 支持单元测试和代码集成测试的集成能
力
* 测试的代码覆盖分析
- 用于 VxWorks 的 Workbench Diagnostics
* 动态记录、诊断和纠正系统问题
* 能够添加有像 printf 功能的软件插桩,而
无需重新编译代码
* 当需要时,能用最小的系统负载采集充分
的诊断信息
* 通过分析 core file,以便能够更好的了解
故障原因
* 设计设备软件易测性
应用程序组件
风河 Workbench 2.4 提供了下述应用功能组
件:
* Eclipse 框架
* 项目系统
* 编译系统
* 编辑器
* 源代码分析器
* 风河编译器
- 风河编译器(适合于和其它目标机操作系
统)
- 风河 GNU 编译器(适合于 VxWorks 和风
河 Linux 平台)
* 风河调试器
2018-09-20
vxWroks 6.8设备驱动开发指南
目录
3 DMA驱动 1
3.1 简介 1
3.2 概要 1
3.3 VxBus驱动方法 1
3.3.1 {vxbDmaResourceGet}( ) 1
3.3.2 {vxbDmaResourceRelease}( ) 2
3.3.3 {vxbDmaResDedicatedGet}( ) 2
3.4 头文件 2
3.5 BSP配置 3
3.6 可用的工具函数 3
3.7 初始化 3
3.8 DMA系统结构和函数 3
3.8.1 (*dmaRead)( ) 3
3.8.2 (*dmaReadAndWait)( ) 4
3.8.3 (*dmaWrite)( ) 4
3.8.4 (*dmaWriteAndWait)( ) 4
3.8.5 (*dmaCancel)( ) 5
3.8.6 (*dmaPause)( ) 5
3.8.7 (*dmaResume)( ) 5
3.8.8 (*dmaStatus)( ) 5
3.9 调试 5
4 中断控制器驱动 5
4.1 介绍 6
4.2 概要 6
4.3 VxBus驱动方法 7
4.3.1 基本方法 7
4.3.2 动态向量方法 8
4.3.3 多处理器方法 9
4.4 头文件 9
4.5 BSP配置 10
4.5.1 中断输入表 10
4.5.2 动态向量表 11
4.5.3 CPU路由表 12
4.5.4 中断优先级 12
4.5.5 交差路由表 13
4.6 现有的工具函数 14
4.6.1 intCtlrHwConfGet( ) 14
4.6.2 intCtlrISRAdd( ) 14
4.6.3 intCtlrISRDisable( ) 14
4.6.4 intCtlrISREnable( ) 15
4.6.5 intCtlrISRRemove( ) 15
4.6.6 intCtlrPinFind( ) 15
4.6.7 intCtlrTableArgGet( ) 15
4.6.8 intCtlrTableFlagsGet( ) 15
4.6.9 intCtlrTableIsrGet( ) 15
4.6.10 intCtlrHwConfShow( ) 15
4.6.11 intCtlrTableCreate( ) 15
4.6.12 intCtlrTableFlagsSet( ) 15
4.1.13 intCtlrTableUserSet( ) 15
4.6.14 VXB_INTCTLR_ISR_CALL( ) 15
4.6.15 VXB_INTCTLR_PINENTRY_ENABLED( ) 16
4.6.16 VXB_INTCTLR_PINENTRY_ALLOCATED( ) 16
4.6.17 调度函数 16
4.7 初始化 16
4.8 中断控制器术语和层次 17
4.9 中断优先级 17
4.10 ISR调度 18
4.11 管理动态中断向量 20
4.12 中断输入的内部特征 22
4.13 VxWorks SMP 多处理器问题 22
4.14 调试 22
5 多功能驱动 23
5.1 介绍 23
5.2 概述 23
5.3 VxBus驱动方法 23
5.4 头文件 23
5.5 BSP配置 23
5.6 可用的工具函数 24
5.7 初始化 24
5.8 设备互联 24
5.8.1 交互寄存器 24
5.8.2 共享资源 25
5.8.3 其它交互 25
5.9 子设备的逻辑位置 25
5.10 调试 25
6 网卡驱动 25
6.1 介绍 25
6.1.1 术语 25
6.1.2 网络概述 26
6.2 网络接口驱动程序 27
6.2.1 网络接口驱动概述 27
6.2.2 网络接口驱动程序VxBus驱动方法 28
6.2.3 网络接口驱动程序头文件 33
6.2.4 网络接口驱动程序BSP配置 34
6.2.5 网络接口驱动程序可用的工具程序 34
6.2.6 网络接口驱动程序初始化 42
6.2.7 MUX:连接到网络代码 42
6.2.8 jobQueueLib:延迟中断处理 43
6.2.9 使用Ipcom_pkt包 43
6.2.10 netBufLib:用M_BLKs传输数据 46
6.2.11 协议对驱动程序的影响 48
6.2.12 其它的网络接口驱动问题 48
6.2.13 网络接口驱动程序的调试 48
6.3 PHY驱动程序 56
6.3.1 PHY驱动概述 56
6.3.2 PHY驱动程序的VxBus驱动方法 58
6.3.3 PHY驱动程序头文件 60
6.3.4 PHY驱动的BSP配置 60
6.3.5 PHY驱动程序拥有的工具程序 60
6.3.6 PHY驱动的初始化 62
6.3.7 PHY驱动的调试 62
6.4 无线以太网驱动 62
6.5 层次END驱动 62
7 Non-Volatile RAM驱动 63
7.1 介绍 63
7.2 Non-Volatile RAM 驱动 63
7.2.1 NVRAM驱动概述 63
7.2.2 针对NVRAM驱动的VxBus驱动方法 63
7.2.3 头文件 64
7.2.4 NVRAM驱动的BSP配置 64
7.2.5 NVRAM驱动的工具程序 65
7.2.6 NVRAM驱动的初始化 65
7.2.7 NVRAM块大小 65
7.2.8 栈NVRAM实例 66
7.2.9 调试NVRAM驱动 66
7.3 TureFFS Flash文件系统支持 66
7.3.1 TrueFFS概述 66
7.3.2 TrueFFS驱动开发流程 67
8 资源驱动 90
8.1 介绍 90
8.2 概要 90
8.3 VxBus驱动方法 91
8.4 头文件 91
8.5 BSP配置 91
8.6 可以的工具函数 91
8.7 初始化 91
8.8 调试 91
10 存储器驱动 92
10.1 介绍 92
10.2 概要 92
10.3 VxBus驱动方法 92
10.4 头文件 92
10.5 BSP配置 92
10.6 可用的工具程序 93
10.7 初始化 93
10.8 VxWorks文件系统关联接口 93
10.8.1 设备创建 93
10.8.2 处理 95
10.8.3 事件报告 95
10.9 写一个新的存储器驱动 96
10.10 调试 97
12 USB驱动 97
12.1 介绍 97
12.2 风河USB概要 98
12.2.1 USB主机栈驱动 98
12.2.2 USB外设栈驱动 98
12.3 主机控制器和根集线器类驱动 98
12.3.1 VxBus驱动方法 98
12.3.2 头文件 99
12.3.3 BSP配置 99
12.3.4 可用的工具函数 101
12.3.5 初始化 101
12.3.6 调试 101
13 其它驱动类 103
13.1 介绍 103
13.2 概要 103
13.3 VxBus驱动方法 103
13.4 头文件 104
13.5 BSP配置 104
13.6 可以的工具函数 104
13.7 初始化 104
13.8 调试 104
2018-09-20
DOS命令大全_速查手册
ASSOC
显示或修改文件扩展名关联。
AT
计划在计算机上运行的命令和程序。
ATTRIB
显示或更改文件属性。
BREAK
设置或清除扩展式 CTRL+C 检查。
CACLS
显示或修改文件的访问控制列表(ACLs)。
CALL
从另一个批处理程序调用这一个。
CD
显示当前目录的名称或将其更改。
CHCP
显示或设置活动代码页数。
CHDIR
显示当前目录的名称或将其更改。
CHKDSK
检查磁盘并显示状态报告。
CHKNTFS
显示或修改启动时间磁盘检查。
CLS
清除屏幕。
CMD
打开另一个 Windows 命令解释程序窗口。
COLOR
设置默认控制台前景和背景颜色。
COMP
比较两个或两套文件的内容。
COMPACT
显示或更改 NTFS 分区上文件的压缩。
CONVERT
将 FAT 卷转换成 NTFS。您不能转换 当前驱动器。
COPY
将至少一个文件复制到另一个位置。
DATE
显示或设置日期。
DEL
删除至少一个文件。
DIR
显示一个目录中的文件和子目录。
DISKCOMP
比较两个软盘的内容。
DISKCOPY
将一个软盘的内容复制到另一个软盘。
DOSKEY
编辑命令行、调用 Windows 命令并创建宏。
ECHO
显示消息,或将命令回显打开或关上。
ENDLOCAL
结束批文件中环境更改的本地化。
ERASE
删除至少一个文件。
EXIT
退出 CMD.EXE 程序(命令解释程序)。
FC
比较两个或两套文件,并显示 不同处。
FIND
在文件中搜索文字字符串。
FINDSTR
在文件中搜索字符串。
FOR
为一套文件中的每个文件运行一个指定的命令。
FORMAT
格式化磁盘,以便跟 Windows 使用。
FTYPE
显示或修改用于文件扩展名关联的文件类型。
GOTO
将 Windows 命令解释程序指向批处理程序 中某个标明的行。
GRAFTABL
启用 Windows 来以图像模式显示 扩展字符集。
HELP
提供 Windows 命令的帮助信息。
IF
执行批处理程序中的条件性处理。
LABEL
创建、更改或删除磁盘的卷标。
MD
创建目录。
MKDIR
创建目录。
MODE
配置系统设备。
MORE
一次显示一个结果屏幕。
MOVE
将文件从一个目录移到另一个目录。
PATH
显示或设置可执行文件的搜索路径。
PAUSE
暂停批文件的处理并显示消息。
POPD
还原 PUSHD 保存的当前目录的上一个值。
PRINT
打印文本文件。
PROMPT
更改 Windows 命令提示符。
PUSHD
保存当前目录,然后对其进行更改。
RD
删除目录。
RECOVER
从有问题的磁盘恢复可读信息。
REM
记录批文件或 CONFIG.SYS 中的注释。
REN
重命名文件。
RENAME
重命名文件。
REPLACE
替换文件。
RMDIR
删除目录。
SET
显示、设置或删除 Windows 环境变量。
SETLOCAL
开始批文件中环境更改的本地化。
SHIFT
更换批文件中可替换参数的位置。
SORT
对输入进行分类。
START
启动另一个窗口来运行指定的程序或命令。
SUBST
将路径跟一个驱动器号关联。
TIME
显示或设置系统时间。
TITLE
设置 CMD.EXE 会话的窗口标题。
TREE
以图形模式显示驱动器或路径的目录结构。
TYPE
显示文本文件的内容。
VER
显示 Windows 版本。
VERIFY
告诉 Windows 是否验证文件是否已正确 写入磁盘。
VOL
显示磁盘卷标和序列号。
XCOPY
复制文件和目录树。
..............................
2018-09-20
TFFS文件系统详解(Transaction Flash FileSystem (TFFS) Description)
Table of Contents
1 Introduction ...................................................................................................... 4
1.1 Scope ................................................................................................................... 4
1.2 Background ......................................................................................................... 4
1.3 Overview ............................................................................................................. 4
1.4 Implemented File Functionality ......................................................................... 5
1.4.1 Basic ............................................................................................................................... 5
1.4.2 Access Attributes ............................................................................................................ 5
1.4.3 Protective Mode .............................................................................................................. 7
1.4.4 Access Monitor ............................................................................................................... 7
1.5 Disk Usage Saturation ........................................................................................ 7
2 Application Programming Interfaces (APIs) .................................................. 9
2.1 The TFFS Protection Application Programming Interface (TP-API) ................ 9
2.1.1 TFFS Usage Protection .................................................................................................. 9
2.1.1.1 Pseudo Code Example .......................................................................................... 9
2.1.1.2 Posix Code Example ............................................................................................ 10
2.1.1.3 sig_semRead ....................................................................................................... 11
2.1.1.4 sig_semWrite ....................................................................................................... 11
2.1.1.5 wai_semRead ...................................................................................................... 11
2.1.1.6 wai_semWrite....................................................................................................... 11
2.1.2 Protective Mode Application Programming Interface ................................................... 11
2.1.3 Monitor Protection Application Programming Interface ................................................ 11
2.2 The TFFS User Application Programming Interface (TU-API) ....................... 13
2.2.1 tffsChange .................................................................................................................... 13
2.2.2 tffsChdir ........................................................................................................................ 14
2.2.3 tffsClearerr .................................................................................................................... 14
2.2.4 tffsDelete ....................................................................................................................... 15
2.2.5 tffsDiagMode ................................................................................................................. 15
2.2.6 tffsExists ....................................................................................................................... 16
2.2.7 tffsFclose ...................................................................................................................... 16
2.2.8 tffsFeof .......................................................................................................................... 17
2.2.9 tffsFerror ....................................................................................................................... 17
2.2.10 tffsFflush ....................................................................................................................... 17
2.2.11 tffsFopen ....................................................................................................................... 18
2.2.12 tffsFormat ...................................................................................................................... 19
2.2.13 tffsFread ........................................................................................................................ 20
2.2.14 tffsFseek ....................................................................................................................... 20
2.2.15 tffsFwrite ....................................................................................................................... 21
2.2.16 tffsGetBlockInfo ............................................................................................................ 21
2.2.17 tffsGetPath .................................................................................................................... 22
2.2.18 tffsGetRoot .................................................................................................................... 22
2.2.19 tffsInit ............................................................................................................................ 22
2.2.20 tffsLsdir ......................................................................................................................... 23
2.2.21 tffsMkdir ........................................................................................................................ 24
2.2.22 tffsMonitorAdd ............................................................................................................... 25
2.2.23 tffsMonitorRemove ........................................................................................................ 26
2.2.24 tffsMount ....................................................................................................................... 27
2.2.25 tffsReclaim .................................................................................................................... 28
2.2.26 tffsResize ...................................................................................................................... 29
2.2.27 tffsRewind ..................................................................................................................... 29
2.2.28 tffsTruncate ................................................................................................................... 30
2.2.29 tffsUnmount .................................................................................................................. 30
2018-09-20
Windows-network-driver-samples-
2018\09\20 周四 10:18 <DIR> .
2018\09\20 周四 10:18 <DIR> ..
2018\09\20 周四 10:18 0 1.txt
2018\09\01 周六 06:08 <DIR> config
2018\09\01 周六 06:08 <DIR> modem
2018\09\01 周六 06:08 <DIR> ndis
2018\09\01 周六 06:08 <DIR> radio
2018\09\01 周六 06:08 <DIR> trans
2018\09\01 周六 06:08 <DIR> wlan
2018\09\01 周六 06:08 <DIR> wsk
1 个文件 0 字节
9 个目录 43,620,765,696 可用字节
2018-09-20
windows-driver-kit-81-cpp
8.1 C++ Samples 的目录
2018\09\20 周四 10:11 .
2018\09\20 周四 10:11 ..
2018\09\20 周四 10:11 0 1.txt
2018\09\10 周一 17:27 AC97 Driver Sample
2018\09\10 周一 17:27 AddFilter Storage Filter Tool
2018\09\10 周一 17:27 AMCC5933 - PCI Device Driver Using WDF
2018\09\10 周一 17:27 Async Notification Sample
2018\09\10 周一 17:27 Audio Adapters Samples
2018\09\10 周一 17:27 AvScan File System Minifilter Driver
2018\09\10 周一 17:27 AVStream filter-centric simulated capture sample driver (Avssamp)
2018\09\10 周一 17:27 AVStream simulated hardware sample driver (Avshws)
2018\09\10 周一 17:27 Bindview Network Configuration Utility
2018\09\10 周一 17:27 Bluetooth Echo L2CAP Profile Driver
2018\09\10 周一 17:27 Bluetooth Serial HCI Bus Driver
2018\09\10 周一 17:27 Cancel-Safe IRP Queue Sample
2018\09\10 周一 17:27 CancelSafe File System Minifilter Driver
2018\09\10 周一 17:27 CDFS File System Driver
2018\09\10 周一 17:27 CDO File System Minifilter Driver
2018\09\10 周一 17:27 CDROM Storage Class Driver
2018\09\10 周一 17:27 Change File System Minifilter Driver
2018\09\10 周一 17:27 ClassPnP Storage Class Driver Library
2018\09\10 周一 17:27 Common Property Sheet UI Sample
2018\09\10 周一 17:27 Connection-less NDIS 6.0 Sample Protocol Driver
2018\09\10 周一 17:27 Ctx File System Minifilter Driver
2018\09\10 周一 17:27 Delete File System Minifilter Driver
2018\09\10 周一 17:27 Device Console (DevCon) Tool
2018\09\10 周一 17:27 DirectMusic Software Synthesizer Sample
2018\09\10 周一 17:27 DirectMusic UART Driver Sample
2018\09\10 周一 17:27 Disk Class Driver
2018\09\10 周一 17:27 Driver Install Frameworks API (DIFxAPI) Sample
2018\09\10 周一 17:27 Driver MFT Sample
2018\09\10 周一 17:27 Early Launch Anti-Malware Driver
2018\09\10 周一 17:27 Echo Sample (UMDF Version 1)
2018\09\10 周一 17:27 Echo Sample (UMDF Version 2)
2018\09\10 周一 17:27 Eventdrv
2018\09\10 周一 17:27 Fakemodem Driver
2018\09\10 周一 17:27 fastfat File System Driver
2018\09\10 周一 17:27 FileHistory Sample
2018\09\10 周一 17:27 FM Synthesizer Driver Sample
2018\09\10 周一 17:27 Generic Text-Only Driver
2018\09\10 周一 17:27 GenPrint Print Processor Sample
2018\09\10 周一 17:27 GPIO Sample Drivers
2018\09\10 周一 17:27 Hardware Event Sample
2018\09\10 周一 17:27 HBtnKey Input Driver
2018\09\10 周一 17:27 HClient sample application
2018\09\10 周一 17:27 HID Minidriver Sample (UMDF Version 1)
2018\09\10 周一 17:27 HIDUSBFX2 sample driver
2018\09\10 周一 17:27 Hyper-V Extensible Switch extension filter driver
2018\09\10 周一 17:27 IOCTL
2018\09\10 周一 17:27 iSCSI WMI Client
2018\09\10 周一 17:27 Kernel Counter Sample (Kcs)
2018\09\10 周一 17:27 Kernel mode display-only miniport driver (KMDOD) sample
2018\09\10 周一 17:27 Keyboard Input WDF Filter Driver (Kbfiltr)
2018\09\10 周一 17:27 Keyboard Layout Samples
2018\09\10 周一 17:27 KMDF Echo Sample
2018\09\10 周一 17:27 KMDF filter driver for a HID device
2018\09\10 周一 17:27 KMDF Power Framework (PoFx) Sample
2018\09\10 周一 17:27 LSI_U3 StorPort Miniport Driver
2018\09\10 周一 17:27 Metadata Manager File System Minifilter Driver
2018\09\10 周一 17:27 Microsoft slate system virtual audio device driver sample
2018\09\10 周一 17:27 Microsoft Virtual Audio Device Driver Sample
2018\09\10 周一 17:27 Minispy File System Minifilter Driver
2018\09\10 周一 17:27 Mouse Input WDF Filter Driver (Moufiltr)
2018\09\10 周一 17:27 Msfilter Sample Codec
2018\09\10 周一 17:27 Msgsm610 Sample Codec
2018\09\10 周一 17:27 MSPLOT Plotter Driver Sample
2018\09\10 周一 17:27 Multipath IO (MPIO) DSM Sample
2018\09\10 周一 17:27 NameChanger File System Minifilter Driver
2018\09\10 周一 17:27 Native Wi-Fi Miniport Sample Driver
2018\09\10 周一 17:27 Native Wifi IHV Service
2018\09\10 周一 17:27 NDIS 6.0 Filter Driver
2018\09\10 周一 17:27 NDIS Connection-less Protocol Driver Sample
2018\09\10 周一 17:27 NDIS MUX Intermediate Driverand Notify Object
2018\09\10 周一 17:27 NDIS Virtual Miniport Driver
2018\09\10 周一 17:27 Near-Field Proximity Sample Driver (UMDF Version 1)
2018\09\10 周一 17:27 NONPNP
2018\09\10 周一 17:27 NullFilter File System Minifilter Driver
2018\09\10 周一 17:27 ObCallback Callback Registration Driver
2018\09\10 周一 17:27 OEM Printer Customization Plug-in Samples
2018\09\10 周一 17:27 OpenXPS Documents Print Sample
2018\09\10 周一 17:27 PassThrough File System Minifilter Driver
2018\09\10 周一 17:27 PCIDRV - WDF Driver for PCI Device
2018\09\10 周一 17:27 PCMCIA Smart Card Driver
2018\09\10 周一 17:27 PixLib sample
2018\09\10 周一 17:27 PLX9x5x PCI Driver
2018\09\10 周一 17:27 PortIO Sample Driver
2018\09\10 周一 17:27 Power Framework (PoFx) Sample (UMDF Version 2)
2018\09\10 周一 17:27 Print Auto Configuration Sample
2018\09\10 周一 17:27 Print Driver Constraints Sample
2018\09\10 周一 17:27 Print Driver INF Sample
2018\09\10 周一 17:27 Print Driver USB Monitor and Bidi Sample
2018\09\10 周一 17:27 Print Monitors Samples
2018\09\10 周一 17:27 Print Pipeline Simple Filter
2018\09\10 周一 17:27 Print Provider Sample Template
2018\09\10 周一 17:27 Print Queue Active Server Page Sample
2018\09\10 周一 17:27 Radio Switch Test Driver for OSR USB-FX2 Development Board
2018\09\10 周一 17:27 RAMDisk Storage Driver Sample
2018\09\10 周一 17:27 RegFltr Sample Driver
2018\09\10 周一 17:27 Sample Function Driver for OSR USB-FX2 (UMDF Version 2)
2018\09\10 周一 17:27 Sample KMDF Bus Driver for OSR USB-FX2
2018\09\10 周一 17:27 Sample KMDF Driver Implementing a WMI Data Provider
2018\09\10 周一 17:27 Sample KMDF Function Driver for OSR USB-FX2
2018\09\10 周一 17:27 Sample UMDF Filter above KMDF Function Driver for OSR USB-FX2 (UMDF Version 1)
2018\09\10 周一 17:27 Sample UMDF Filter above UMDF Function Driver for OSR USB-FX2 (UMDF Version 1)
2018\09\10 周一 17:27 Sample UMDF Function Driver for OSR USB-FX2 (UMDF Version 1)
2018\09\10 周一 17:27 Scanner File System Minifilter Driver
2018\09\10 周一 17:27 SCSI Pass-Through Interface Tool
2018\09\10 周一 17:27 SDV-FailDriver-KMDF
2018\09\10 周一 17:27 SDV-FailDriver-NDIS
2018\09\10 周一 17:27 SDV-FailDriver-STORPORT
2018\09\10 周一 17:27 SDV-FailDriver-WDM
2018\09\10 周一 17:27 Sensors Geolocation Sample Driver (UMDF Version 1)
2018\09\10 周一 17:27 Serenum sample
2018\09\10 周一 17:27 Serial Port Driver
2018\09\10 周一 17:27 SimRep File System Minifilter Driver
2018\09\10 周一 17:27 SimSensor Simulated Temperature Sensor Sample Driver
2018\09\10 周一 17:27 SimThermalClient Simulated Thermal Client Sample Driver
2018\09\10 周一 17:27 SkeletonI2C Sample Driver
2018\09\10 周一 17:27 SpbAccelerometer Sample Driver (UMDF Version 1)
2018\09\10 周一 17:27 SpbTestTool
2018\09\10 周一 17:27 Storage SDIO Driver
2018\09\10 周一 17:27 StorAhci StorPort Miniport Driver
2018\09\10 周一 17:27 Super Floppy (sfloppy) Storage Class Driver
2018\09\10 周一 17:27 SwapBuffer File System Minifilter Driver
2018\09\10 周一 17:27 System DMA
2018\09\10 周一 17:27 SystemTraceProvider
2018\09\10 周一 17:27 Toaster Package Sample
2018\09\10 周一 17:27 Toaster Sample (UMDF Version 2)
2018\09\10 周一 17:27 Toaster Sample Driver
2018\09\10 周一 17:27 Tracedrv
2018\09\10 周一 17:27 UMDF Driver Skeleton Sample (UMDF Version 1)
2018\09\10 周一 17:27 UMDF SocketEcho Sample (UMDF Version 1)
2018\09\10 周一 17:27 USB Host-Based Print Driver Sample
2018\09\10 周一 17:27 Usbsamp Generic USB Driver
2018\09\10 周一 17:27 USBView sample application
2018\09\10 周一 17:27 Virtual serial driver sample
2018\09\10 周一 17:27 WDF Hybrid 1394 Virtual Device Sample Driver
2018\09\10 周一 17:27 WDF Installation Package
2018\09\10 周一 17:27 WDF Sample Driver Learning Lab for OSR USB-FX2
2018\09\10 周一 17:27 Windows Biometric Driver Samples (UMDF Version 1)
2018\09\10 周一 17:27 Windows Filtering Platform MSN Messenger Monitor Sample
2018\09\10 周一 17:27 Windows Filtering Platform Packet Modification Sample
2018\09\10 周一 17:27 Windows Filtering Platform Sample
2018\09\10 周一 17:27 Windows Filtering Platform Stream Edit Sample
2018\09\10 周一 17:27 Windows Filtering Platform Traffic Inspection Sample
2018\09\10 周一 17:27 Windows Image Acquisition (WIA) Driver Samples
2018\09\10 周一 17:27 Windows Radio Management Sample
2018\09\10 周一 17:27 WMI ACPI Sample
2018\09\10 周一 17:27 WPD Basic Hardware Sample Driver (UMDF Version 1)
2018\09\10 周一 17:27 WPD multi-transport sample driver
2018\09\10 周一 17:27 WPD service sample driver
2018\09\10 周一 17:27 WPD WUDF sample driver
2018\09\10 周一 17:27 WPDHelloWorld sample driver for portable devices
2018\09\10 周一 17:27 WSDMon Bidi Extension Sample
2018\09\10 周一 17:27 WSK TCP Echo Server
2018\09\10 周一 17:27 XPS Documents Print Sample
2018\09\10 周一 17:27 XPS Rasterization Filter Service Sample
2018\09\10 周一 17:27 XPSDrv Driver and Filter Sample
1 个文件 0 字节
157 个目录 43,620,806,656 可用字节
2018-09-20
vxworks_kernel_programmers_guide_6.9
PART I: CORE TECHNOLOGIES
1 Overview ...................................................................................................... 3
1.1 Introduction ...................................................................................................................... 3
1.2 Kernel Architecture ......................................................................................................... 3
1.3 Related Documentation Resources .............................................................................. 4
1.4 VxWorks Configuration and Build .............................................................................. 5
2 VxWorks Configuration ............................................................................. 7
2.1 Introduction ...................................................................................................................... 7
2.2 About VxWorks Configuration ................................................................................... 7
2.2.1 Default Configuration and Images ................................................................. 8
2.2.2 Configuration With VxWorks Image Projects ............................................... 8
2.2.3 Configuration With VxWorks Source Build Projects ................................... 8
2.2.4 Configuration and Customization .................................................................. 8
2.2.5 Configuration Tools: Workbench and vxprj .................................................. 9
2.3 VxWorks Image Projects: VIPs .................................................................................... 9
2.3.1 VxWorks Components ...................................................................................... 10
Component Names .......................................................................................... 10
Basic VxWorks Components ............................................................................ 11
2.3.2 Device Driver Selection ................................................................................... 13
2.3.3 Component Bundles and Configuration Profiles ........................................ 14
2.3.4 VxWorks Component Reference .................................................................... 14
2.4 VxWorks Source Build Projects: VSBs ....................................................................... 14
2.4.1 Basic Operating System VSB Options ........................................................... 16
BSP-Specific Optimizations ............................................................................. 16
VxWorks
Kernel Programmer's Guide, 6.9
iv
Inconsistent Cache Mode Support .................................................................. 17
System Viewer Instrumentation Support ...................................................... 17
Real-Time Process Support .............................................................................. 17
Object Management Support ........................................................................... 17
Error Detection and Reporting Policy Hooks ............................................... 18
Task Switch Hook Support .............................................................................. 18
Task Create Hook Support ............................................................................... 18
CPU Power Management Support ................................................................. 19
Advanced Options ............................................................................................ 19
VxWorks BSP Validation Test Suite Support ................................................. 19
Symmetric Multiprocessor (SMP) Support ................................................... 19
SMP Determinism ............................................................................................. 19
MIPC Support .................................................................................................... 20
WRLOAD Support ............................................................................................ 20
Task-Specific Current Working Directory ...................................................... 20
Device Name Length ........................................................................................ 20
NFS V3 Server Optimization ........................................................................... 20
DOSFS Name Length Compatible .................................................................. 21
2.4.2 VSB Profiles ........................................................................................................ 21
2.4.3 Using VSB Projects to Create VxWorks Systems: Basic Steps .................... 21
2.4.4 Developing Kernel Applications for VSB Systems ..................................... 21
2.5 VxWorks Without Networking ..................................................................................... 22
2.6 Small-Footprint VxWorks Configuration ................................................................... 22
2.6.1 About Small-Footprint VxWorks .................................................................... 22
Kernel Facilities ................................................................................................. 22
Unsupported Facilities ..................................................................................... 23
BSPs ..................................................................................................................... 23
2.6.2 Configuring Small Footprint VxWorks .......................................................... 23
Small-Footprint VSB Profile and Options ...................................................... 24
VSB Options Specific to the Small-Footprint Profile .................................... 24
Small-Footprint VIP Profile and Components .............................................. 25
Optional Components for a Small Footprint VIP Project ............................ 25
2.6.3 Configuration and Build Steps for Small-Footprint VxWorks ................... 25
2.6.4 Writing Applications for Small-Footprint VxWorks .................................... 26
2.6.5 Example Application ........................................................................................ 26
2.6.6 Debugging Small-Footprint VxWorks ............................................................ 28
2.7 VxWorks Image Types ................................................................................................... 28
2.7.1 Default VxWorks Images ................................................................................ 29
2.7.2 VxWorks Images for Development and Production Systems ..................... 29
2.7.3 Boot Parameter Configuration for Standalone VxWorks Images .............. 30
2.8 Image Size Considerations ............................................................................................ 30
2.8.1 Boot Loader and Downloadable Image ......................................................... 30
2.8.2 Self-Booting Image ............................................................................................ 31
Contents
v
3 Boot Loader ................................................................................................. 33
3.1 Introduction ...................................................................................................................... 33
3.2 Using a Default Boot Loader ......................................................................................... 34
3.3 Boot Loader Image Types ............................................................................................... 35
3.4 Boot Loader Shell ............................................................................................................ 35
3.4.1 Boot Loader Shell Commands ......................................................................... 36
3.5 Boot Parameters ............................................................................................................... 39
3.5.1 Displaying Current Boot Parameters ............................................................. 40
3.5.2 Description of Boot Parameters ...................................................................... 41
3.5.3 Changing Boot Parameters Interactively ....................................................... 44
3.6 Rebooting VxWorks ........................................................................................................ 45
3.7 Configuring and Building Boot Loaders .................................................................... 46
3.7.1 Boot Loader Profiles .......................................................................................... 46
3.7.2 Boot Loader Components ................................................................................ 47
3.7.3 Configuring Boot Parameters Statically ......................................................... 47
3.7.4 Enabling Networking for Non-Boot Interfaces ............................................. 48
3.7.5 Selecting a Boot Device ..................................................................................... 48
3.7.6 Reconfiguring Boot Loader Memory Layout for 32-Bit VxWorks ............. 50
Redefining the Boot Loader Link Address for Custom Boot Loaders ....... 50
Reconfiguring Memory Layout for a Persistent Memory Region ............. 51
3.7.7 Reconfiguring Boot Loader Memory Layout for 64-Bit VxWorks ............. 53
3.7.8 Building Boot Loaders ...................................................................................... 53
3.8 Installing Boot Loaders .................................................................................................. 53
3.9 Booting From a Network ............................................................................................... 53
3.10 Booting From a Target File System ............................................................................. 55
3.11 Booting From the Host File System Using TSFS ..................................................... 55
4 Kernel Applications .................................................................................... 57
4.1 Introduction ...................................................................................................................... 57
4.2 About Kernel Applications ........................................................................................... 58
4.3 Comparing Kernel Applications with RTP Applications ....................................... 59
4.4 C and C++ Libraries ........................................................................................................ 60
VxWorks
Kernel Programmer's Guide, 6.9
vi
4.5 Kernel Application Structure ........................................................................................ 60
4.6 VxWorks Header Files .................................................................................................... 61
4.6.1 VxWorks Header File: vxWorks.h ................................................................... 61
4.6.2 Other VxWorks Header Files ........................................................................... 62
4.6.3 ANSI Header Files ............................................................................................ 62
4.6.4 ANSI C++ Header Files .................................................................................... 62
4.6.5 The -I Compiler Flag ......................................................................................... 62
4.6.6 VxWorks Nested Header Files ........................................................................ 62
4.6.7 VxWorks Private Header Files ........................................................................ 63
4.7 Custom Header Files ....................................................................................................... 63
4.8 Static Instantiation of Kernel Objects ......................................................................... 64
4.8.1 About Static Instantiation of Kernel Objects ................................................. 64
Kernel Objects That can be Instantiated Statically ....................................... 65
Static Instantiation and Code Size .................................................................. 65
Advantages of Static Instantiation .................................................................. 65
Applications and Static Instantiation ............................................................. 66
4.8.2 Scope Of Static Declarations ............................................................................ 66
4.8.3 Caveat With Regard to Macro Use .................................................................. 66
4.8.4 Static Instantiation of Tasks ............................................................................. 66
4.8.5 Static Instantiation Of Semaphores ................................................................ 67
4.8.6 Static Instantiation of Message Queues ......................................................... 68
4.8.7 Static Instantiation of Watchdog Timers ........................................................ 68
4.9 Boot-Time Hook Routine Facility ............................................................................... 69
Boot-Time Hook Routine Stubs and Components ....................................... 69
Using Boot-Time Hook Routine Stubs ........................................................... 70
4.10 Kernel Applications and Kernel Component Requirements ................................. 71
4.11 Building Kernel Application Modules ....................................................................... 71
4.12 Downloading Kernel Application Object Modules to a Target ............................. 72
4.13 Linking Kernel Application Object Modules with VxWorks ................................ 72
4.14 Configuring VxWorks to Run Applications Automatically ................................... 72
5 C++ Development ....................................................................................... 75
5.1 Introduction ...................................................................................................................... 75
5.2 Configuring VxWorks for C++ ..................................................................................... 76
5.3 C++ Header Files ............................................................................................................. 76
Contents
vii
5.4 Spawning Tasks That Use C++ ..................................................................................... 76
5.5 Calls Between C and C++ Code .................................................................................... 77
5.6 C++ Compiler Caveats .................................................................................................... 77
5.7 Using C++ in Signal Handlers and ISRs ................................................................... 78
5.8 Downloadable Kernel Modules in C++ ..................................................................... 78
5.9 C++ Compiler Differences ............................................................................................ 78
5.9.1 Template Instantiation ...................................................................................... 78
5.9.2 Run-Time Type Information ............................................................................ 80
5.10 Namespaces ...................................................................................................................... 80
5.11 C++ Exception Handling ................................................................................................ 81
5.12 Standard Template Library (STL) ................................................................................ 81
5.13 C++ Demo Example ........................................................................................................ 81
6 Multitasking ................................................................................................. 83
6.1 Introduction ...................................................................................................................... 83
6.2 About Tasks and Multitasking ..................................................................................... 84
6.2.1 Task States and Transitions .............................................................................. 85
Tasks States and State Symbols ....................................................................... 85
Illustration of Basic Task State Transitions .................................................... 86
6.3 VxWorks System Tasks .................................................................................................. 87
Basic VxWorks Tasks ......................................................................................... 88
Tasks for Optional Components ..................................................................... 91
6.4 Task Scheduling .............................................................................................................. 93
6.4.1 Task Priorities .................................................................................................... 93
6.4.2 VxWorks Traditional Scheduler ...................................................................... 93
Priority-Based Preemptive Scheduling .......................................................... 94
Scheduling and the Ready Queue ................................................................. 94
Round-Robin Scheduling ................................................................................. 95
6.5 Task Creation and Management ................................................................................... 97
6.5.1 Task Creation and Activation .......................................................................... 97
Static instantiation of Tasks ............................................................................. 98
6.5.2 Task Names and IDs ......................................................................................... 98
Task Naming Rules ........................................................................................... 99
Task Name and ID Routines ............................................................................ 99
VxWorks
Kernel Programmer's Guide, 6.9
viii
6.5.3 Inter-Process Communication With Public Tasks ......................................... 99
6.5.4 Task Creation Options ...................................................................................... 100
6.5.5 Task Stack ........................................................................................................... 102
Task Stack Protection ........................................................................................ 102
6.5.6 Task Information ............................................................................................... 103
6.5.7 Task Deletion and Deletion Safety .................................................................. 104
6.5.8 Task Execution Control ..................................................................................... 105
6.5.9 Task Scheduling Control .................................................................................. 106
6.5.10 Tasking Extensions: Using Hook Routines .................................................... 107
6.6 Task Error Status: errno .................................................................................................. 108
6.6.1 Layered Definitions of errno ........................................................................... 109
6.6.2 A Separate errno Value for Each Task ............................................................ 109
6.6.3 Error Return Convention ................................................................................. 109
6.6.4 Assignment of Error Status Values ................................................................. 110
6.7 Task Exception Handling ............................................................................................... 110
6.8 Shared Code and Reentrancy ........................................................................................ 111
6.8.1 Dynamic Stack Variables .................................................................................. 112
6.8.2 Guarded Global and Static Variables ............................................................. 112
6.8.3 Task-Specific Variables .................................................................................... 113
Thread-Local Variables: __thread Storage Class ........................................... 113
taskVarLib and Task Variables ........................................................................ 114
6.8.4 Multiple Tasks with the Same Main Routine ................................................ 114
7 Intertask and Interprocess Communication ............................................. 117
7.1 Introduction ...................................................................................................................... 117
7.2 About Intertask and Interprocess Communication .................................................. 118
7.3 Shared Data Structures ................................................................................................... 119
7.4 Interrupt Locks ............................................................................................................... 120
7.5 Task Locks ........................................................................................................................ 121
7.6 Semaphores ...................................................................................................................... 122
7.6.1 Inter-Process Communication With Public Semaphores ............................. 123
7.6.2 Semaphore Creation and Use .......................................................................... 123
Options for Scalable and Inline Semaphore Routines ................................ 125
Static Instantiation of Semaphores ................................................................. 125
Scalable and Inline Semaphore Take and Give Routines ........................... 126
Contents
ix
7.6.3 Binary Semaphores ........................................................................................... 126
Mutual Exclusion .............................................................................................. 127
Synchronization ................................................................................................. 128
7.6.4 Mutual-Exclusion Semaphores ....................................................................... 129
Priority Inversion and Priority Inheritance ................................................... 129
Deletion Safety ................................................................................................... 132
Recursive Resource Access .............................................................................. 133
7.6.5 Counting Semaphores ...................................................................................... 134
7.6.6 Read/Write Semaphores ................................................................................. 134
Specification of Read or Write Mode .............................................................. 135
Precedence for Write Access Operations ....................................................... 136
Read/Write Semaphores and System Performance ..................................... 136
7.6.7 Special Semaphore Options ............................................................................. 136
Semaphore Timeout .......................................................................................... 136
Semaphores and Queueing .............................................................................. 137
Semaphores and VxWorks Events .................................................................. 137
7.7 Message Queues .............................................................................................................. 137
7.7.1 Inter-Process Communication With Public Message Queues ..................... 138
7.7.2 Message Creation and Use ............................................................................... 138
Static Instantiation of Message Queues ......................................................... 139
Message Queue Timeout .................................................................................. 139
Message Queue Urgent Messages .................................................................. 140
Message Queues and Queuing Options ........................................................ 140
7.7.3 Displaying Message Queue Attributes .......................................................... 141
7.7.4 Servers and Clients with Message Queues .................................................... 141
7.7.5 Message Queues and VxWorks Events .......................................................... 142
7.8 Pipes ................................................................................................................................... 142
7.8.1 Creating Pipes ................................................................................................... 142
7.8.2 Writing to Pipes from ISRs ............................................................................... 142
7.8.3 I/O Control Functions ...................................................................................... 143
7.9 VxWorks Events ............................................................................................................... 143
7.9.1 Configuring VxWorks for Events .................................................................... 144
7.9.2 About Event Flags and the Task Events Register ......................................... 144
7.9.3 Receiving Events ............................................................................................... 145
7.9.4 Sending Events .................................................................................................. 146
7.9.5 Inter-Process Communication With Events .................................................. 148
7.9.6 Events Routines ................................................................................................. 148
7.9.7 Code Example ................................................................................................... 149
7.9.8 Show Routines and Events .............................................................................. 149
VxWorks
Kernel Programmer's Guide, 6.9
x
7.10 Inter-Process Communication With Public Objects ................................................. 149
Creating and Naming Public and Private Objects ....................................... 150
Example of Inter-process Communication With a Public Semaphore ...... 150
7.11 About VxWorks API Timeout Parameters .................................................................. 152
7.12 About Object Ownership and Resource Reclamation ............................................. 152
8 Signals, ISRs, and Watchdog Timers ........................................................ 155
8.1 Introduction ...................................................................................................................... 155
8.2 Signals .............................................................................................................................. 156
8.2.1 Configuring VxWorks for Signals .................................................................. 157
8.2.2 Basic Signal Routines ........................................................................................ 158
8.2.3 Queued Signal Routines .................................................................................. 159
8.2.4 Signal Events ...................................................................................................... 162
8.2.5 Signal Handlers ................................................................................................. 163
8.3 Interrupt Service Routines: ISRs ................................................................................. 166
8.3.1 Configuring VxWorks for ISRs ........................................................................ 166
Configuring the Interrupt Stack ...................................................................... 166
Adding Show Routine Support ....................................................................... 167
8.3.2 Writing ISRs ....................................................................................................... 167
Restrictions on ISRs ........................................................................................... 167
Facilities Available for ISRs .............................................................................. 169
Reserving High Interrupt Levels .................................................................... 170
8.3.3 System Clock ISR Modification ....................................................................... 171
8.3.4 Connecting ISRs to Interrupts ......................................................................... 171
8.3.5 Getting Information About ISRs ..................................................................... 172
8.3.6 Debugging ISRs ................................................................................................. 173
8.4 Watchdog Timers ............................................................................................................. 174
Static Instantiation of Watchdog Timers ........................................................ 175
8.4.1 Inter-Process Communication With Public Watchdog Timers ................... 176
9 POSIX Facilities .......................................................................................... 177
9.1 Introduction ...................................................................................................................... 178
9.2 Configuring VxWorks with POSIX Facilities ............................................................ 179
9.2.1 VxWorks Components for POSIX Facilities .................................................. 179
9.3 General POSIX Support ................................................................................................. 180
9.4 POSIX Header Files ........................................................................................................ 181
Contents
xi
9.5 POSIX Namespace .......................................................................................................... 183
9.6 POSIX Clocks and Timers ............................................................................................. 183
9.7 POSIX Asynchronous I/O .............................................................................................. 186
9.8 POSIX Advisory File Locking ....................................................................................... 186
9.9 POSIX Page-Locking Interface ..................................................................................... 186
9.10 POSIX Threads ................................................................................................................ 187
9.10.1 POSIX Thread Attributes ................................................................................. 188
9.10.2 VxWorks-Specific Pthread Attributes ............................................................ 188
9.10.3 Specifying Attributes when Creating Pthreads ........................................... 189
9.10.4 POSIX Thread Creation and Management .................................................... 190
9.10.5 POSIX Thread Attribute Access ...................................................................... 190
9.10.6 POSIX Thread Private Data ............................................................................. 191
9.10.7 POSIX Thread Cancellation ............................................................................. 192
9.11 POSIX Thread Mutexes and Condition Variables .................................................... 193
9.11.1 Thread Mutexes ................................................................................................. 193
Protocol Mutex Attribute ................................................................................ 194
Priority Ceiling Mutex Attribute .................................................................... 195
9.11.2 Condition Variables .......................................................................................... 195
9.12 POSIX and VxWorks Scheduling ................................................................................. 196
9.12.1 Differences in POSIX and VxWorks Scheduling ........................................... 197
9.12.2 POSIX and VxWorks Priority Numbering ..................................................... 198
9.12.3 Default Scheduling Policy ................................................................................ 198
9.12.4 VxWorks Traditional Scheduler ...................................................................... 198
9.12.5 POSIX Threads Scheduler ................................................................................ 199
9.12.6 POSIX Scheduling Routines ............................................................................ 203
9.12.7 Getting Scheduling Parameters: Priority Limits and Time Slice ................ 204
9.13 POSIX Semaphores ......................................................................................................... 204
9.13.1 Comparison of POSIX and VxWorks Semaphores ....................................... 205
9.13.2 Using Unnamed Semaphores .......................................................................... 206
9.13.3 Using Named Semaphores .............................................................................. 208
9.14 POSIX Message Queues ................................................................................................. 211
9.14.1 Comparison of POSIX and VxWorks Message Queues ............................... 212
9.14.2 POSIX Message Queue Attributes .................................................................. 213
9.14.3 Displaying Message Queue Attributes .......................................................... 214
VxWorks
Kernel Programmer's Guide, 6.9
xii
9.14.4 Communicating Through a Message Queue ................................................ 215
9.14.5 Notification of Message Arrival ..................................................................... 218
9.15 POSIX Signals .................................................................................................................. 222
9.16 POSIX Memory Management ....................................................................................... 222
10 Memory Management ................................................................................. 223
10.1 Introduction ...................................................................................................................... 223
10.2 32-Bit VxWorks Memory Layout ................................................................................. 224
10.2.1 Displaying Information About Memory Layout .......................................... 224
10.2.2 System Memory Map Without RTP Support ................................................ 224
10.2.3 System Memory Map with RTP Support ....................................................... 226
10.2.4 System RAM Autosizing .................................................................................. 228
10.2.5 Reserved Memory: User-Reserved Memory and Persistent Memory ...... 228
10.3 64-Bit VxWorks Memory Layout ................................................................................. 229
10.3.1 Displaying Information About Memory Layout .......................................... 230
10.3.2 Virtual Memory Regions .................................................................................. 230
Kernel System Virtual Memory Region ......................................................... 231
Kernel Virtual Memory Pool Region .............................................................. 232
Kernel Reserved Memory Region ................................................................... 232
Shared User Virtual Memory Region ............................................................. 232
RTP Private Virtual Memory Region .............................................................. 232
10.3.3 Global RAM Pool .............................................................................................. 233
10.3.4 Kernel Memory Map ........................................................................................ 233
Kernel System Memory .................................................................................... 235
Kernel Common Heap ...................................................................................... 235
DMA32 Heap ..................................................................................................... 235
User-Reserved Memory ................................................................................... 235
Persistent Memory ............................................................................................ 235
10.3.5 Reserved Memory Configuration: User-Reserved Memory and Persistent
Memory .............................................................................................................. 236
10.3.6 System RAM Autosizing .................................................................................. 236
10.4 About VxWorks Memory Allocation Facilities ......................................................... 236
10.5 32-Bit VxWorks Heap and Memory Partition Management .................................. 237
10.5.1 Configuring the Kernel Heap and the Memory Partition Manager .......... 238
10.5.2 Basic Heap and Memory Partition Manager ................................................. 238
10.5.3 Full Heap and Memory Partition Manager ................................................... 238
10.6 64-Bit VxWorks Heap and Memory Partition Management .................................. 239
10.6.1 Kernel Common Heap ...................................................................................... 239
Contents
xiii
10.6.2 Kernel Proximity Heap ..................................................................................... 240
10.6.3 DMA32 Heap ..................................................................................................... 240
10.7 SMP-Optimized Memory Allocation .......................................................................... 241
10.7.1 Configuration ..................................................................................................... 241
10.7.2 Usage scenarios ................................................................................................. 241
10.8 Memory Pools .................................................................................................................. 242
10.9 POSIX Memory Management ....................................................................................... 242
10.9.1 POSIX Memory Management APIs ................................................................ 243
10.9.2 POSIX Memory Mapping ................................................................................ 244
10.9.3 POSIX Memory Protection ............................................................................... 244
10.9.4 POSIX Memory Locking .................................................................................. 244
10.10 Memory Mapping Facilities .......................................................................................... 245
10.10.1 POSIX Memory-Mapped Files ........................................................................ 247
10.10.2 POSIX Shared Memory Objects ...................................................................... 247
10.10.3 Anonymous Memory Mapping ...................................................................... 247
10.10.4 Device Memory Objects ................................................................................... 248
10.10.5 Shared Data Regions ......................................................................................... 249
10.11 Virtual Memory Management ..................................................................................... 249
10.11.1 Configuring Virtual Memory Management .................................................. 250
10.11.2 Managing Virtual Memory Programmatically ............................................. 251
Modifying Page States ...................................................................................... 252
Making Memory Non-Writable ...................................................................... 253
Invalidating Memory Pages ............................................................................ 255
Locking TLB Entries .......................................................................................... 255
Page Size Optimization .................................................................................... 255
Setting Page States in ISRs ............................................................................... 256
10.11.3 Troubleshooting ................................................................................................. 256
10.12 Additional Memory Protection Features ................................................................... 257
10.12.1 Configuring VxWorks for Additional Memory Protection ......................... 257
10.12.2 Stack Overrun and Underrun Detection ........................................................ 258
10.12.3 Non-Executable Task Stack .............................................................................. 258
10.12.4 Text Segment Write Protection ........................................................................ 258
10.12.5 Exception Vector Table Write Protection ........................................................ 259
10.13 Memory Error Detection ................................................................................................ 259
10.13.1 Heap and Partition Memory Instrumentation .............................................. 259
10.13.2 Compiler Instrumentation: 32-Bit VxWorks .................................................. 264
VxWorks
Kernel Programmer's Guide, 6.9
xiv
11 I/O System ................................................................................................... 269
11.1 Introduction ...................................................................................................................... 269
11.2 About the VxWorks I/O System ................................................................................... 270
Differences Between VxWorks and Host System I/O ................................. 270
11.3 Configuring VxWorks With I/O Facilities .................................................................. 271
11.4 I/O Devices, Named Files, and File Systems ............................................................ 272
11.5 Remote File System Access From VxWorks ............................................................... 273
NFS File System Access from VxWorks ......................................................... 273
Non-NFS Network File System Access from VxWorks WIth FTP or RSH 273
11.6 Basic I/O ............................................................................................................................ 275
11.6.1 File Descriptors .................................................................................................. 275
File Descriptor Table ......................................................................................... 276
11.6.2 Standard Input, Standard Output, and Standard Error .............................. 276
11.6.3 Standard I/O Redirection ................................................................................ 276
Issues with Standard I/O Redirection ........................................................... 277
11.6.4 Open and Close ................................................................................................. 278
11.6.5 Create and Remove ........................................................................................... 280
11.6.6 Read and Write .................................................................................................. 281
11.6.7 File Truncation ................................................................................................... 281
11.6.8 I/O Control ........................................................................................................ 282
11.6.9 Pending on Multiple File Descriptors with select( ) ..................................... 282
11.6.10 POSIX File System Routines ............................................................................ 284
11.7 Standard I/O ..................................................................................................................... 285
11.7.1 Configuring VxWorks With Standard I/O .................................................... 285
11.7.2 About printf( ), sprintf( ), and scanf( ) ............................................................ 286
11.7.3 About Standard I/O and Buffering ................................................................ 286
11.7.4 About Standard Input, Standard Output, and Standard Error .................. 287
11.8 Other Formatted I/O ....................................................................................................... 287
11.8.1 Output in Serial I/O Polled Mode: kprintf( ) ................................................ 287
Writing to User-Defined Storage Media With kprintf( ) and kputs( ) ....... 288
11.8.2 Additional Formatted I/O Routines ............................................................. 289
11.8.3 Message Logging ............................................................................................... 289
11.9 Asynchronous Input/Output ......................................................................................... 289
11.9.1 The POSIX AIO Routines ................................................................................. 290
Contents
xv
11.9.2 AIO Control Block ............................................................................................. 291
11.9.3 Using AIO ........................................................................................................... 292
AIO with Periodic Checks for Completion ................................................... 292
Alternatives for Testing AIO Completion ..................................................... 294
12 Devices ........................................................................................................ 297
12.1 Introduction ...................................................................................................................... 297
12.2 About Devices in VxWorks ........................................................................................... 298
12.3 Serial I/O Devices: Terminal and Pseudo-Terminal Devices .................................. 299
tty Options .......................................................................................................... 299
12.3.1 Raw Mode and Line Mode .............................................................................. 300
12.3.2 tty Special Characters ....................................................................................... 300
12.3.3 I/O Control Functions ...................................................................................... 301
12.4 Pipe Devices ..................................................................................................................... 302
12.5 Pseudo I/O Device ........................................................................................................... 302
12.5.1 I/O Control Functions ...................................................................................... 303
12.6 Null Devices .................................................................................................................... 303
12.7 Block Devices ................................................................................................................... 303
12.7.1 XBD RAM Disk .................................................................................................. 305
12.7.2 SCSI Drivers ....................................................................................................... 306
Configuring SCSI Drivers ................................................................................ 306
Structure of the SCSI Subsystem ..................................................................... 307
Booting and Initialization ................................................................................ 308
Device-Specific Configuration Options ......................................................... 308
SCSI Configuration Examples ......................................................................... 310
Troubleshooting ................................................................................................. 312
12.8 Extended Block Device Facility: XBD ......................................................................... 313
12.8.1 XBD Disk Partition Manager ........................................................................... 313
12.8.2 XBD Block Device Wrapper ............................................................................. 314
12.8.3 XBD TRFS Component ..................................................................................... 314
12.9 PCMCIA ............................................................................................................................ 315
12.10 Peripheral Component Interconnect: PCI .................................................................. 315
12.11 Network File System (NFS) Devices ........................................................................... 315
12.11.1 I/O Control Functions for NFS Clients .......................................................... 316
12.12 Non-NFS Network Devices ........................................................................................... 317
VxWorks
Kernel Programmer's Guide, 6.9
xvi
12.12.1 Creating Network Devices ............................................................................... 318
12.12.2 I/O Control Functions ...................................................................................... 318
12.13 Sockets ............................................................................................................................... 318
12.14 Internal I/O System Structure ....................................................................................... 319
12.14.1 Drivers ................................................................................................................ 321
The Driver Table and Installing Drivers ........................................................ 322
Example of Installing a Driver ........................................................................ 322
12.14.2 Devices ................................................................................................................ 323
The Device List and Adding Devices ............................................................. 323
Example of Adding Devices ............................................................................ 324
Deleting Devices ................................................................................................ 324
12.14.3 File Descriptors .................................................................................................. 327
File Descriptor Table ......................................................................................... 327
Example of Opening a File ............................................................................... 327
Example of Reading Data from the File ......................................................... 330
Example of Closing a File ................................................................................. 331
Implementing select( ) ...................................................................................... 331
Cache Coherency ............................................................................................... 334
13 Local File Systems ..................................................................................... 339
13.1 Introduction ...................................................................................................................... 339
13.2 File System Monitor ...................................................................................................... 341
Device Insertion Events .................................................................................... 342
XBD Name Mapping Facility .......................................................................... 343
13.3 Virtual Root File System: VRFS ................................................................................... 343
13.4 Highly Reliable File System: HRFS ............................................................................ 345
13.4.1 Configuring VxWorks for HRFS ..................................................................... 345
13.4.2 Configuring HRFS ............................................................................................ 346
13.4.3 Creating an HRFS File System ....................................................................... 347
Overview of HRFS File System Creation ....................................................... 347
HRFS File System Creation Steps ................................................................... 347
13.4.4 HRFS, ATA, and RAM Disk Examples .......................................................... 348
13.4.5 Optimizing HRFS Performance ...................................................................... 353
13.4.6 Transactional Operations and Commit Policies ......................................... 353
Automatic Commit Policy ............................................................................... 353
High-Speed Commit Policy ............................................................................. 354
Mandatory Commits ......................................................................................... 354
Rollbacks ............................................................................................................. 354
Programmatically Initiating Commits ........................................................... 354
13.4.7 File Access Time Stamps .................................................................................. 355
Contents
xvii
13.4.8 Maximum Number of Files and Directories ................................................. 355
13.4.9 Working with Directories ................................................................................. 355
Creating Subdirectories .................................................................................... 355
Removing Subdirectories ................................................................................. 356
Reading Directory Entries ................................................................................ 356
13.4.10 Working with Files ............................................................................................ 356
File I/O Routines ............................................................................................... 356
File Linking and Unlinking ............................................................................. 356
File Permissions ................................................................................................. 357
13.4.11 I/O Control Functions Supported by HRFS ................................................. 357
13.4.12 Crash Recovery and Volume Consistency ..................................................... 358
Crash Recovery .................................................................................................. 358
Consistency Checking ...................................................................................... 358
13.4.13 File Management and Full Devices ................................................................ 358
13.5 MS-DOS-Compatible File System: dosFs .................................................................. 359
13.5.1 Configuring VxWorks for dosFs ..................................................................... 360
13.5.2 Configuring dosFs ............................................................................................ 361
13.5.3 Creating a dosFs File System ........................................................................... 362
Overview of dosFs File System Creation ....................................................... 362
dosFs File System Creation Steps ................................................................... 363
13.5.4 dosFs, ATA Disk, and RAM Disk Examples ................................................. 365
13.5.5 Optimizing dosFs Performance ...................................................................... 369
13.5.6 Working with Volumes and Disks .................................................................. 370
Accessing Volume Configuration Information ............................................. 370
Synchronizing Volumes .................................................................................... 370
13.5.7 Working with Directories ................................................................................. 370
Creating Subdirectories .................................................................................... 370
Removing Subdirectories ................................................................................. 371
Reading Directory Entries ................................................................................ 371
13.5.8 Working with Files ............................................................................................ 371
File I/O Routines ............................................................................................... 371
File Attributes .................................................................................................... 371
13.5.9 Disk Space Allocation Options ........................................................................ 373
Choosing an Allocation Method ..................................................................... 374
Using Cluster Group Allocation ..................................................................... 374
Using Absolutely Contiguous Allocation ...................................................... 374
13.5.10 Crash Recovery and Volume Consistency ..................................................... 376
13.5.11 I/O Control Functions Supported by dosFsLib ............................................ 376
13.5.12 Booting from a Local dosFs File System Using SCSI ................................... 378
13.6 Transaction-Based Reliable File System Support for dosFs: TRFS ....................... 380
VxWorks
Kernel Programmer's Guide, 6.9
xviii
13.6.1 Configuring VxWorks With TRFS ................................................................... 380
13.6.2 Automatic Instantiation of TRFS .................................................................... 380
13.6.3 Formatting a Device for TRFS ......................................................................... 381
13.6.4 Using TRFS in Applications ............................................................................ 382
TRFS Code Examples ....................................................................................... 382
13.7 Raw File System: rawFs ................................................................................................. 383
13.7.1 Configuring VxWorks for rawFs ..................................................................... 383
13.7.2 Creating a rawFs File System .......................................................................... 383
13.7.3 Mounting rawFs Volumes ................................................................................ 384
13.7.4 rawFs File I/O ................................................................................................... 385
13.7.5 I/O Control Functions Supported by rawFsLib ........................................... 385
13.8 CD-ROM File System: cdromFs ................................................................................... 386
13.8.1 Configuring VxWorks for cdromFs ................................................................ 387
13.8.2 Creating and Using cdromFs ........................................................................... 387
13.8.3 I/O Control Functions Supported by cdromFsLib ...................................... 389
13.8.4 Version Numbers ............................................................................................... 390
13.9 Read-Only Memory File System: ROMFS ................................................................. 390
13.9.1 Configuring VxWorks with ROMFS ............................................................... 391
13.9.2 Adding a ROMFS Directory and File Content to VxWorks ........................ 391
13.9.3 Accessing Files in ROMFS ............................................................................... 392
13.9.4 Using ROMFS to Start Applications Automatically .................................... 392
13.10 Target Server File System: TSFS ................................................................................... 392
Socket Support ................................................................................................... 393
Error Handling .................................................................................................. 394
Configuring VxWorks for TSFS Use ............................................................... 394
Security Considerations ................................................................................... 394
Using the TSFS to Boot a Target ...................................................................... 395
14 Flash File System Support: TrueFFS ........................................................ 397
14.1 Introduction ...................................................................................................................... 397
14.2 Overview of Implementation Steps ............................................................................ 398
14.3 Creating a VxWorks System with TrueFFS ................................................................ 400
14.3.1 Selecting an MTD .............................................................................................. 400
14.3.2 Identifying the Socket Driver .......................................................................... 400
14.3.3 Configuring VxWorks with TrueFFS and File System ................................. 401
Including the Core TrueFFS Component ....................................................... 401
Including the MTD Component ...................................................................... 402
Contents
xix
Including the Translation Layer Component ................................................ 402
Including the Socket Driver ............................................................................. 403
Including the XBD Wrapper Component ...................................................... 403
Including File System Components ............................................................... 403
Including Utility Components ........................................................................ 403
14.3.4 Building the System .......................................................................................... 404
14.3.5 Formatting the Flash ......................................................................................... 404
Formatting With sysTffsFormat( ) .................................................................. 404
Formatting With tffsDevFormat( ) .................................................................. 405
14.3.6 Reserving a Region in Flash for a Boot Image .............................................. 406
Reserving a Fallow Region .............................................................................. 407
Writing the Boot Image to Flash ...................................................................... 408
14.3.7 Mounting the Drive .......................................................................................... 409
14.3.8 Creating a File System ...................................................................................... 409
14.3.9 Testing the Drive ............................................................................................... 410
14.4 Using TrueFFS Shell Commands ................................................................................. 410
14.5 Using TrueFFS With HRFS ............................................................................................
2018-09-20
vxbus_device_driver_developers_guide_6.9
PART I: VXBUS FUNDAMENTALS
1 Getting Started with Device Driver Development .................................... 3
1.1 About Device Drivers ..................................................................................................... 3
1.2 About this Documentation ............................................................................................ 4
1.2.1 Intended Audience ........................................................................................... 4
1.2.2 Navigating this Manual .................................................................................. 4
Experienced VxWorks Device Driver Developers ........................................ 4
Novice VxWorks Device Driver Developers ................................................. 5
1.2.3 Documentation Conventions .......................................................................... 5
1.3 Additional Documentation Resources ....................................................................... 6
2 VxBus and VxBus Device Drivers ............................................................. 7
2.1 Introduction ...................................................................................................................... 7
2.2 About VxBus ................................................................................................................... 7
2.3 VxBus Device Drivers ................................................................................................... 8
2.4 Design Goals ................................................................................................................... 11
2.4.1 Performance ....................................................................................................... 11
2.4.2 Maintenance and Readability .......................................................................... 11
2.4.3 Ease of Configuration ....................................................................................... 12
2.4.4 Performance Testing ......................................................................................... 12
2.4.5 Code Size ............................................................................................................ 12
3 Device Driver Fundamentals ..................................................................... 13
3.1 Introduction ...................................................................................................................... 13
3.2 Driver Classes ................................................................................................................. 14
VxBus
Device Driver Developer's Guide, 6.9
iv
3.2.1 General Classes .................................................................................................. 14
Serial Drivers .................................................................................................... 14
Storage Drivers ................................................................................................. 14
Network Interface Drivers .............................................................................. 15
Non-Volatile RAM Drivers ............................................................................. 15
Timer Drivers .................................................................................................... 16
DMA Controller Drivers ................................................................................. 16
Bus Controller Drivers ..................................................................................... 16
USB Drivers ....................................................................................................... 17
Interrupt Controller Drivers ........................................................................... 17
Multifunction Drivers ...................................................................................... 17
Remote Processing Element Drivers ............................................................. 18
Console Drivers ................................................................................................ 18
Resource Drivers .............................................................................................. 19
3.2.2 Other Classes .................................................................................................... 19
3.3 Driver Organization ....................................................................................................... 19
3.3.1 File Location ...................................................................................................... 20
Wind River Drivers ........................................................................................... 20
Third-Party Drivers .......................................................................................... 20
3.3.2 Sample Driver Files: wrsample ....................................................................... 21
3.3.3 Required Files ................................................................................................... 21
Driver Source File ............................................................................................. 22
Component Description File ........................................................................... 24
Driver Configuration Stub Files ..................................................................... 29
README File .................................................................................................... 31
Device Driver Makefiles .................................................................................. 31
3.4 VxBus Driver Methods .................................................................................................. 33
3.4.1 Representing Driver Methods in the Documentation ................................ 33
3.4.2 Parts of a Driver Method ................................................................................. 33
3.4.3 Calling Driver Methods ................................................................................... 34
3.4.4 Advertising Driver Methods .......................................................................... 35
3.4.5 Driver Method Limitations ............................................................................. 36
3.5 Driver Run-time Life Cycle .......................................................................................... 36
3.5.1 Driver Initialization Sequence ........................................................................ 36
Making Assumptions About Initialization Order ....................................... 37
Early in the Boot Process ................................................................................. 37
sysHwInit( ), PLB, and Hardware Discovery ............................................... 37
Driver Registration ........................................................................................... 38
Driver Initialization Phase 1 ........................................................................... 38
Kernel Startup ................................................................................................... 39
Driver Initialization Phase 2 ........................................................................... 39
Driver Initialization Phase 3 ........................................................................... 39
3.5.2 Invoking a Driver Method .............................................................................. 39
3.5.3 Run-time Operation ......................................................................................... 39
Contents
v
Unloading a Driver .......................................................................................... 40
Removing a Device from the System ............................................................ 40
Dissociating a Device from a Driver .............................................................. 40
3.5.4 Handling a System Shutdown Notification ................................................. 41
3.5.5 Handling Late Driver Registration ................................................................ 41
3.5.6 Driver Registration Order Considerations ................................................... 42
3.5.7 Driver-to-Device Matching and Hardware Availability ............................. 42
PLB ..................................................................................................................... 43
Other Bus Types ................................................................................................ 43
3.6 Services Available to Drivers ....................................................................................... 44
3.6.1 Configuration .................................................................................................... 44
Determining Driver Configuration Information ......................................... 45
Responding to Changes in Device Parameters ............................................ 47
3.6.2 Memory Allocation .......................................................................................... 47
Allocating Memory During System Startup ................................................ 48
Allocating Memory During Normal System Operation ............................. 49
Intermixing Memory Allocation Methods within a Single Driver ........... 49
3.6.3 Non-Volatile RAM Support ............................................................................. 49
3.6.4 Hardware Access .............................................................................................. 50
Finding the Address of the Hardware Registers ......................................... 50
Reading and Writing to the Hardware Registers ........................................ 51
Special Requirements for Hardware Register Access ................................. 53
VxBus Version Considerations ........................................................................ 53
3.6.5 Interrupt Handling ........................................................................................... 54
Overview of Interrupt Handling .................................................................... 54
Interrupt Indexes .............................................................................................. 54
Dynamic Interrupt Handling .......................................................................... 55
Minimizing Work Performed Within an ISR ................................................ 56
3.6.6 Synchronization ................................................................................................ 57
Task-Level Synchronization ............................................................................ 57
Interrupt-Level Synchronization .................................................................... 58
3.6.7 Direct Memory Access (DMA) ....................................................................... 59
vxbDmaBufLib .................................................................................................. 60
DMA Considerations ........................................................................................ 60
Allocating External DMA Engines ................................................................ 63
3.6.8 Atomic Operators ............................................................................................. 65
3.7 BSP Configuration ......................................................................................................... 66
3.7.1 Requirements for PLB Devices ....................................................................... 67
3.7.2 Configuring Device Parameters in the BSP .................................................. 68
3.8 SMP Considerations ...................................................................................................... 69
3.8.1 Lack of Implicit Locking ................................................................................. 69
VxBus
Device Driver Developer's Guide, 6.9
vi
3.8.2 True Task-to-Task Contention ......................................................................... 70
3.8.3 Interrupt Routing ............................................................................................. 70
3.8.4 Deferring Interrupt Processing ...................................................................... 71
3.9 Device Memory Mapping in 64-Bit Devices .............................................................. 72
3.10 Physical-to-Virtual Address Translations in 64-Bit VxWorks ................................. 73
3.10.1 64-bit Changes to the Memory Management Model ................................... 73
3.10.2 Porting Drivers That Rely on Physical-to-Virtual Address Translations .. 74
Transfer Using Descriptors .............................................................................. 74
Strategies When Order is Unpredictable ....................................................... 75
4 Development Strategies ............................................................................. 77
4.1 Introduction ...................................................................................................................... 77
4.2 Writing New VxBus Drivers ........................................................................................ 77
4.2.1 Creating the VxBus Infrastructure ................................................................. 78
Writing Driver Source Files ............................................................................. 78
Writing Header Files (Optional) .................................................................... 78
Writing the Component Description File (CDF) .......................................... 78
Writing the Configuration Stub Files ............................................................ 79
Verifying the Infrastructure ............................................................................ 80
4.2.2 Modifying the BSP (Optional) ........................................................................ 80
4.2.3 Adding Debug Code ........................................................................................ 81
4.2.4 Adding the VxBus Driver Methods ............................................................... 81
4.2.5 Removing Global Variables ............................................................................ 82
4.3 VxBus Show Routines ................................................................................................... 83
4.3.1 Available Show Routines ................................................................................ 83
vxBusShow( ) ..................................................................................................... 83
vxbDevStructShow( ) ........................................................................................ 85
vxbDevPathShow( ) .......................................................................................... 86
4.3.2 PCI Show Routines .......................................................................................... 86
pciDevShow( ) ................................................................................................... 87
vxbPciDeviceShow( ) ........................................................................................ 87
vxbPciHeaderShow( ) ....................................................................................... 88
vxbPciFindDeviceShow( ) ................................................................................ 89
vxbPciFindClassShow( ) ................................................................................... 89
vxbPciConfigTopoShow( ) ............................................................................... 90
4.3.3 Using Show Routines from Software ............................................................ 91
4.3.4 Configuring Show Routines into VxWorks .................................................. 93
4.4 Debugging ....................................................................................................................... 94
4.4.1 Configuring Show Routines ........................................................................... 94
Contents
vii
4.4.2 Deferring Driver Registration ........................................................................ 95
4.4.3 Including Debug Code .................................................................................... 95
4.4.4 Confirming Register Access ............................................................................ 96
4.4.5 Increasing the Size of HWMEM_POOL ........................................................ 96
4.4.6 Confirming Device and Driver Name Matches ........................................... 96
5 Driver Release Procedure .......................................................................... 99
5.1 Introduction ..................................................................................................................... 99
5.2 Driver Source Location .................................................................................................. 100
5.3 Driver-Specific Directories ............................................................................................ 101
5.4 Driver Installation and the README File ................................................................ 102
5.5 Driver Packaging ............................................................................................................ 103
5.6 Driver Release Procedure ............................................................................................. 104
PART II: DEVICE DRIVER PORTING
6 Class-Specific Driver Development .......................................................... 107
6.1 About VxBus Driver Classes ........................................................................................ 107
6.2 Before You Begin ............................................................................................................. 107
6.3 About the Class-Specific Driver Documentation ..................................................... 108
7 Bus Controller Drivers ................................................................................ 109
7.1 Introduction ..................................................................................................................... 109
7.2 Overview .......................................................................................................................... 109
7.3 VxBus Driver Methods .................................................................................................. 111
7.3.1 {busCtlrDevCfgRead}( ) ................................................................................... 111
7.3.2 {busCtlrCfgRead}( ) ........................................................................................... 112
7.3.3 {busCtlrDevCfgWrite}( ) ................................................................................... 113
7.3.4 {busCtlrCfgWrite}( ) .......................................................................................... 113
7.3.5 {busCtlrDevCtlr}( ) ............................................................................................ 114
7.3.6 {busCtlrAccessOverride}( ) .............................................................................. 115
Override for (*busCfgRead)( ) ......................................................................... 115
Override for (*busCfgWrite)( ) ........................................................................ 116
Override for (*vxbDevControl)( ) ................................................................... 116
VxBus
Device Driver Developer's Guide, 6.9
viii
7.3.7 {busCtlrCfgInfo}( ) ............................................................................................. 116
7.3.8 {busCtlrBaseAddrCvt}( ) .................................................................................. 117
7.3.9 {vxbDevRegMap}( ) ........................................................................................... 117
Specifying a Predefined Transaction Type ..................................................... 119
Providing a New Transaction Type ............................................................... 120
7.3.10 {vxbIntDynaVecProgram}( ) ............................................................................. 122
7.4 Header Files ..................................................................................................................... 122
7.5 BSP Configuration .......................................................................................................... 123
7.5.1 PCI Configuration ............................................................................................ 124
7.5.2 PCI Autoconfiguration .................................................................................... 124
7.6 Available Utility Routines ............................................................................................ 125
7.6.1 PCI Configuration ............................................................................................ 125
7.6.2 PCI Autoconfiguration ..................................................................................... 126
7.6.3 vxbBusAnnounce( ) ........................................................................................... 126
7.6.4 vxbPciBusTypeInit( ) ......................................................................................... 127
7.7 Initialization .................................................................................................................... 127
7.7.1 Initialization Example ..................................................................................... 128
vxbBusAnnounce( ) ........................................................................................... 129
vxbDeviceAnnounce( ) ..................................................................................... 130
vxbDevStructAlloc( ) ........................................................................................ 130
vxbDevStructFree( ) .......................................................................................... 130
7.8 Debugging ........................................................................................................................ 130
8 Direct Memory Access Drivers .................................................................. 131
8.1 Introduction ..................................................................................................................... 131
8.2 Overview ........................................................................................................................... 131
8.3 VxBus Driver Methods ................................................................................................... 132
8.3.1 {vxbDmaResourceGet}( ) .................................................................................. 132
8.3.2 {vxbDmaResourceRelease}( ) ........................................................................... 133
8.3.3 {vxbDmaResDedicatedGet}( ) .......................................................................... 133
8.4 Header Files ...................................................................................................................... 133
8.5 BSP Configuration .......................................................................................................... 134
8.6 Available Utility Routines ............................................................................................. 134
8.7 Initialization ..................................................................................................................... 134
Contents
ix
8.8 DMA System Structures and Routines ....................................................................... 134
8.8.1 (*dmaRead)( ) ..................................................................................................... 135
8.8.2 (*dmaReadAndWait)( ) ..................................................................................... 135
8.8.3 (*dmaWrite)( ) .................................................................................................... 135
8.8.4 (*dmaWriteAndWait)( ) .................................................................................... 136
8.8.5 (*dmaCancel)( ) .................................................................................................. 136
8.8.6 (*dmaPause)( ) ................................................................................................... 136
8.8.7 (*dmaResume)( ) ................................................................................................ 136
8.8.8 (*dmaStatus)( ) ................................................................................................... 136
8.9 Debugging ....................................................................................................................... 137
9 I2C Drivers ................................................................................................... 139
9.1 Introduction ...................................................................................................................... 139
9.2 Overview ........................................................................................................................... 139
9.3 VxBus Driver Methods ................................................................................................... 140
9.4 Header Files ...................................................................................................................... 141
9.5 BSP Configuration .......................................................................................................... 141
9.6 Initialization ..................................................................................................................... 143
9.7 Implementing Driver Service Routines ...................................................................... 144
(*VXB_I2C_LOCK_BUS_FUNC)( ) ................................................................. 145
(*VXB_I2C_UNLOCK_BUS_FUNC)( ) ........................................................... 145
(*VXB_I2C_START_FUNC)( ) .......................................................................... 145
(*VXB_I2C_STOP_FUNC)( ) ............................................................................ 146
(*VXB_I2C_READ_FUNC)( ) ........................................................................... 146
(*VXB_I2C_WRITE_FUNC)( ) ......................................................................... 146
(*VXB_I2C_DEV_READ)( ) .............................................................................. 147
(*VXB_I2C_DEV_WRITE)( ) ............................................................................ 147
9.8 Device Driver ................................................................................................................... 148
9.8.1 Generic I2C Devices .......................................................................................... 149
10 Interrupt Controller Drivers ........................................................................ 151
10.1 Introduction ..................................................................................................................... 151
10.2 Overview .......................................................................................................................... 152
Interrupt Identification .................................................................................... 152
Interrupt Controller Driver Responsibilities ................................................. 152
Interrupt Controller Configurations ............................................................... 153
Dynamic Vectors ................................................................................................ 153
Interrupt Controller Drivers and Multiprocessing ....................................... 154
VxBus
Device Driver Developer's Guide, 6.9
x
10.3 VxBus Driver Methods .................................................................................................. 154
10.3.1 Basic Methods .................................................................................................... 154
{vxbIntCtlrAlloc}( ) ............................................................................................ 154
{vxbIntCtlrFree}( ) ............................................................................................. 155
{vxbIntCtlrConnect}( ) ...................................................................................... 155
{vxbIntCtlrDisconnect}( ) ................................................................................. 155
{vxbIntCtlrEnable}( ) ......................................................................................... 156
{vxbIntCtlrDisable}( ) ........................................................................................ 156
10.3.2 Dynamic Vector Methods ................................................................................ 156
{vxbIntDynaVecConnect}( ) ............................................................................. 156
10.3.3 Multiprocessor Methods ................................................................................. 157
{vxbIntCtlrIntReroute}( ) .................................................................................. 157
{vxbIntCtlrCpuReroute}( ) .............................................................................. 157
{vxIpiControlGet}( ) .......................................................................................... 157
10.4 Header Files ...................................................................................................................... 158
vxbIntrCtlr.h ....................................................................................................... 158
vxbIntCtlrLib.h .................................................................................................. 158
10.5 BSP Configuration .......................................................................................................... 158
10.5.1 Interrupt Input Table ........................................................................................ 159
10.5.2 Dynamic Vector Table ....................................................................................... 160
10.5.3 CPU Routing Table ............................................................................................ 162
10.5.4 Interrupt Priority ............................................................................................... 163
10.5.5 Crossbar Routing Table .................................................................................... 163
10.6 Available Utility Routines ............................................................................................. 164
10.6.1 intCtlrHwConfGet( ) ......................................................................................... 165
10.6.2 intCtlrISRAdd( ) ................................................................................................ 165
10.6.3 intCtlrISRDisable( ) ........................................................................................... 165
10.6.4 intCtlrISREnable( ) ............................................................................................ 166
10.6.5 intCtlrISRRemove( ) .......................................................................................... 166
10.6.6 intCtlrPinFind( ) ................................................................................................ 166
10.6.7 intCtlrTableArgGet( ) ........................................................................................ 166
10.6.8 intCtlrTableFlagsGet( ) ..................................................................................... 166
10.6.9 intCtlrTableIsrGet( ) .......................................................................................... 166
10.6.10 intCtlrHwConfShow( ) ..................................................................................... 166
10.6.11 intCtlrTableCreate( ) ......................................................................................... 167
10.6.12 intCtlrTableFlagsSet( ) ...................................................................................... 167
10.6.13 intCtlrTableUserSet( ) ....................................................................................... 167
10.6.14 VXB_INTCTLR_ISR_CALL( ) ......................................................................... 167
10.6.15 VXB_INTCTLR_PINENTRY_ENABLED( ) ................................................... 167
Contents
xi
10.6.16 VXB_INTCTLR_PINENTRY_ALLOCATED( ) ............................................. 167
10.6.17 Dispatch Routines ............................................................................................. 168
vxbIntDynaCtlrInputInit( ) .............................................................................. 168
vxbIntDynaVecProgram( ) ............................................................................... 168
vxbIntDynaVecErase( ) ..................................................................................... 169
10.7 Initialization ..................................................................................................................... 169
10.8 Interrupt Controller Topologies and Hierarchies ..................................................... 169
10.9 Interrupt Priority ............................................................................................................. 170
10.10 ISR Dispatch .................................................................................................................... 171
10.11 Managing Dynamic Interrupt Vectors ........................................................................ 173
Configuring Dynamic Vectors Using the Service Driver Routines ............ 174
Configuring Dynamic Vectors in the BSP ..................................................... 174
Programming Dynamic Vectors ...................................................................... 175
Determining Dynamic Vector Values ............................................................ 175
10.12 Internal Representation of Interrupt Inputs .............................................................. 176
10.13 Multiprocessor Issues with VxWorks SMP ................................................................ 177
10.13.1 Routing Interrupt Inputs to Individual CPUs .............................................. 177
10.13.2 Interprocessor Interrupts ................................................................................. 178
10.13.3 Limitations in Multiprocessor Systems .......................................................... 182
10.14 Debugging ........................................................................................................................ 182
11 Multifunction Drivers .................................................................................. 185
11.1 Introduction ...................................................................................................................... 185
11.2 Overview ........................................................................................................................... 185
11.3 VxBus Driver Methods ................................................................................................... 186
11.4 Header Files ...................................................................................................................... 186
11.5 BSP Configuration .......................................................................................................... 186
11.6 Available Utility Routines ............................................................................................. 187
vxbDevStructAlloc( ) ........................................................................................ 187
vxbDeviceAnnounce( ) ..................................................................................... 187
vxbDevRemovalAnnounce( ) .......................................................................... 187
vxbDevStructFree( ) .......................................................................................... 188
vxbBusAnnounce( ) ........................................................................................... 188
11.7 Initialization ..................................................................................................................... 188
11.8 Device Interconnections ................................................................................................ 188
VxBus
Device Driver Developer's Guide, 6.9
xii
11.8.1 Interleaved Registers ........................................................................................ 188
11.8.2 Shared Resources ............................................................................................... 189
11.8.3 Other Interactions ............................................................................................. 190
11.9 Logical Location of Subordinate Devices ................................................................... 190
11.10 Debugging ........................................................................................................................ 190
12 Network Drivers .......................................................................................... 191
12.1 Introduction ...................................................................................................................... 191
12.1.1 Terminology ....................................................................................................... 191
12.1.2 Networking Overview ..................................................................................... 192
Seven Layer OSI Model .................................................................................... 192
Transmission Media and VxWorks ................................................................. 192
Protocols ............................................................................................................. 193
12.2 Network Interface Drivers ............................................................................................. 193
12.2.1 Network Interface Driver Overview .............................................................. 193
IPNET-Native Drivers ...................................................................................... 193
Functional Modules .......................................................................................... 194
Network Driver Interrupts ............................................................................. 195
12.2.2 VxBus Driver Methods for Network Interface Drivers .............................. 196
{muxDevConnect}( ) ......................................................................................... 196
{muxDevConnect2}( ) ....................................................................................... 197
{vxbDrvUnlink}( ) .............................................................................................. 199
{miiMediaUpdate}( ) ......................................................................................... 199
{miiRead}( ) ........................................................................................................ 200
{miiWrite}( ) ........................................................................................................ 201
12.2.3 Header Files for Network Interface Drivers ................................................. 201
12.2.4 BSP Configuration for Network Interface Drivers ...................................... 202
12.2.5 Available Utility Routines for Network Interface Drivers ......................... 203
MUX Interactions .............................................................................................. 203
Job Queueing ..................................................................................................... 204
Buffer Management .......................................................................................... 205
DMA Support .................................................................................................... 209
PHY and MII bus interactions ......................................................................... 210
12.2.6 Initialization for Network Interface Drivers ................................................ 212
12.2.7 MUX: Connecting to Networking Code ........................................................ 212
12.2.8 jobQueueLib: Deferring ISRs ........................................................................... 213
12.2.9 Working with Ipcom_pkt Packets ................................................................... 214
Supporting Scatter-Gather with IPNET-Native Drivers .............................. 217
12.2.10 netBufLib: Transferring Data with M_BLKs ................................................ 218
12.2.11 Protocol Impact on Drivers .............................................................................. 220
Contents
xiii
12.2.12 Other Network Interface Driver Issues .......................................................... 232
Receive Handling Method ............................................................................... 233
Receive Stall Handling ..................................................................................... 240
12.2.13 Debugging Network Interface Drivers .......................................................... 241
Using VxBus Show Routines ........................................................................... 241
Deferring Driver Registration ......................................................................... 241
Pairing with a PHY instance ............................................................................ 242
Stress Testing ...................................................................................................... 242
Netperf Test Suite .............................................................................................. 243
Interrupt Validation .......................................................................................... 243
Additional Tests ................................................................................................. 243
12.3 PHY Drivers ...................................................................................................................... 249
12.3.1 PHY Driver Overview ...................................................................................... 250
PHY Device Probing and Discovery .............................................................. 250
MAC and MII Bus Relationship ...................................................................... 251
Generic PHY Driver Support ........................................................................... 252
Generic TBI Driver Support ............................................................................. 252
12.3.2 VxBus Driver Methods for PHY Drivers ....................................................... 253
Upper Edge Methods ........................................................................................ 253
Lower Edge Methods ....................................................................................... 253
12.3.3 Header Files for PHY Drivers ......................................................................... 255
12.3.4 BSP Configuration for PHY Drivers ............................................................... 255
12.3.5 Available Utility Routines for PHY Drivers .................................................. 255
Upper Edge Utility Routines ........................................................................... 256
Lower Edge Utility Routines ........................................................................... 256
12.3.6 Initialization for PHY Drivers ......................................................................... 257
12.3.7 Debugging PHY Drivers .................................................................................. 257
12.4 Wireless Ethernet Drivers .............................................................................................. 258
12.5 Hierarchical END Drivers ............................................................................................. 258
13 Non-Volatile RAM Drivers .......................................................................... 259
13.1 Introduction ...................................................................................................................... 259
NVRAM Drivers and TrueFFS ........................................................................ 259
13.2 Non-Volatile RAM Drivers ........................................................................................... 260
13.2.1 NVRAM Driver Overview ............................................................................... 260
13.2.2 VxBus Driver Methods for NVRAM Drivers ................................................ 260
{nonVolGet}( ) .................................................................................................... 260
{nonVolSet}( ) ..................................................................................................... 261
13.2.3 Header Files ....................................................................................................... 261
13.2.4 BSP Configuration for NVRAM Drivers ....................................................... 261
VxBus
Device Driver Developer's Guide, 6.9
xiv
13.2.5 Utility Routines for NVRAM Drivers ............................................................ 262
13.2.6 Initialization for NVRAM Drivers .................................................................. 262
13.2.7 NVRAM Block Sizes ......................................................................................... 262
13.2.8 Stacking NVRAM Instances ............................................................................ 263
13.2.9 Debugging NVRAM Drivers ........................................................................... 263
13.3 Flash File System Support with TrueFFS ................................................................... 263
13.3.1 TrueFFS Overview ............................................................................................. 264
Core Layer .......................................................................................................... 264
MTD Layer ........................................................................................................ 264
Socket Layer ....................................................................................................... 264
Flash Translation Layer .................................................................................... 265
13.3.2 TrueFFS Driver Development Process ........................................................... 265
Using MTD-Supported Flash Devices ........................................................... 265
Writing MTD Components .............................................................................. 269
Socket Drivers .................................................................................................... 276
Flash Translation Layer .................................................................................... 282
14 RapidIO Drivers ........................................................................................... 297
14.1 Introduction ...................................................................................................................... 297
14.2 Overview ........................................................................................................................... 297
14.3 VxBus Driver Methods ................................................................................................... 299
{vxbRapidIoCtlrInfoGet}( ) .............................................................................. 299
{sharedMemSupportAPIGet}( ) ....................................................................... 300
{vxbMsgApiGet}( ) ............................................................................................ 300
14.4 Header Files ...................................................................................................................... 301
14.5 BSP Configuration .......................................................................................................... 301
RapidIO Bus Controller Driver ....................................................................... 301
Virtual Message Network Device Driver ....................................................... 301
14.6 Initialization ..................................................................................................................... 302
Phase 1 ................................................................................................................ 302
Phase 2 ................................................................................................................ 302
Phase 3 ................................................................................................................ 303
14.7 Implementing Driver Service Routines ...................................................................... 303
RapidIO Bus Controller Driver ....................................................................... 303
Message Controller Driver ............................................................................... 307
15 Resource Drivers ........................................................................................ 311
15.1 Introduction ...................................................................................................................... 311
Contents
xv
15.2 Overview ........................................................................................................................... 311
15.3 VxBus Driver Methods ................................................................................................... 312
15.4 Header Files ...................................................................................................................... 312
15.5 BSP Configuration .......................................................................................................... 312
15.6 Available Utility Routines ............................................................................................. 313
15.7 Initialization ..................................................................................................................... 313
15.8 Debugging ........................................................................................................................ 313
16 Serial Drivers ............................................................................................... 315
16.1 Introduction ...................................................................................................................... 315
16.2 Overview ........................................................................................................................... 315
16.3 VxBus Driver Methods ................................................................................................... 316
16.3.1 {sioChanGet}( ) ................................................................................................... 316
16.3.2 {sioChanConnect}( ) .......................................................................................... 317
16.4 Header Files ...................................................................................................................... 317
16.5 BSP Configuration .......................................................................................................... 318
16.6 Available Utility Routines ............................................................................................. 318
16.7 Initialization ..................................................................................................................... 318
16.8 Polled Mode Versus Interrupt-Driven Mode ............................................................. 318
16.9 SIO_CHAN and SIO_DRV_FUNCS ............................................................................ 319
16.10 WDB ................................................................................................................................... 321
16.10.1 WDB and Kernel Initialization ........................................................................ 321
16.11 Serial Drivers, Initialization, and Interrupts ............................................................. 321
16.11.1 WDB and Interrupts ......................................................................................... 322
16.11.2 Initialization Order and Interrupts ................................................................. 322
16.11.3 Initialization Order ........................................................................................... 323
16.12 Debugging ........................................................................................................................ 323
17 SPI Drivers ................................................................................................... 325
17.1 Introduction ...................................................................................................................... 325
17.2 Overview ........................................................................................................................... 325
VxBus
Device Driver Developer's Guide, 6.9
xvi
17.3 VxBus Driver Methods ................................................................................................... 326
17.4 Header Files ...................................................................................................................... 326
17.5 BSP Configuration .......................................................................................................... 327
17.6 Initialization ..................................................................................................................... 328
17.7 Implementing Driver Service Routines ...................................................................... 329
17.8 Device Driver ................................................................................................................... 329
17.8.1 SPI_EEPROM ..................................................................................................... 330
17.8.2 SPI Flash ............................................................................................................. 330
18 Storage Drivers ........................................................................................... 333
18.1 Introduction ...................................................................................................................... 333
18.2 Overview ........................................................................................................................... 333
Updates in VxWorks 6.9, Update Pack 2, Service Pack 1 ............................ 334
Updates in VxWorks 6.9, Update Pack 3, Service Pack 3 ............................ 334
18.3 VxBus Driver Methods ................................................................................................... 335
18.4 Header Files ...................................................................................................................... 335
18.5 BSP Configuration .......................................................................................................... 336
18.6 Available Utility Routines ............................................................................................. 336
erfHandlerRegister( ) and erfHandlerUnregister( ) ..................................... 336
erfEventRaise( ) ................................................................................................. 336
xbdAttach( ) ....................................................................................................... 336
bio_done( ) .......................................................................................................... 337
18.7 Initialization ..................................................................................................................... 337
18.8 Interface with VxWorks File Systems ......................................................................... 337
18.8.1 Device Creation ................................................................................................. 337
ERF Registration ................................................................................................ 338
Advertisement of XBD Methods ..................................................................... 338
ERF New Device Notification ......................................................................... 339
18.8.2 Processing ........................................................................................................... 340
xbd_request processing .................................................................................... 340
18.8.3 Event Reporting ................................................................................................. 341
18.9 Writing New Storage Drivers ........................................................................................ 342
18.10 Writing New SD/MMC/SDIO host controller Drivers ............................................ 343
18.11 Device Driver ................................................................................................................... 344
Contents
xvii
19 Timer Drivers ............................................................................................... 345
19.1 Introduction ...................................................................................................................... 345
19.2 Overview ........................................................................................................................... 345
19.3 VxBus Driver Methods ................................................................................................... 346
19.4 Header Files ...................................................................................................................... 349
19.5 BSP Configuration .......................................................................................................... 349
19.6 Available Utility Routines ............................................................................................. 349
19.7 Initialization ..................................................................................................................... 349
19.8 Data Structure Layout ..................................................................................................... 350
19.9 Implementing Driver Service Routines ...................................................................... 351
19.9.1 (*timerAllocate)( ) .............................................................................................. 351
19.9.2 (*timerRelease)( ) ............................................................................................... 351
19.9.3 (*timerRolloverGet)( ) ....................................................................................... 352
19.9.4 (*timerCountGet)( ) ........................................................................................... 352
19.9.5 (*timerDisable)( ) ............................................................................................... 353
19.9.6 (*timerEnable)( ) ................................................................................................ 354
19.9.7 (*timerISRSet)( ) ................................................................................................. 354
19.9.8 (*timerEnable64)( ) ............................................................................................ 355
19.9.9 (*timerRolloverGet64)( ) ................................................................................... 355
19.9.10 (*timerCountGet64)( ) ....................................................................................... 356
19.10 Integrating a Timer Driver ............................................................................................ 357
19.10.1 VxWorks System Clock .................................................................................... 357
19.10.2 VxWorks Auxiliary Clock ................................................................................ 359
19.10.3 VxWorks Timestamp Driver ............................................................................ 360
19.11 Debugging ........................................................................................................................ 361
19.12 SMP Considerations ....................................................................................................... 361
20 USB Drivers ................................................................................................. 363
20.1 Introduction ...................................................................................................................... 363
20.2 Wind River USB Overview ............................................................................................ 363
20.2.1 USB Host Stack Drivers .................................................................................... 364
VxBus Model Drivers ....................................................................................... 364
Other Host Drivers ............................................................................................ 364
VxBus
Device Driver Developer's Guide, 6.9
xviii
20.2.2 USB Target Stack ............................................................................................... 364
20.3 Host Controller and Root Hub Class Drivers ............................................................ 365
20.3.1 VxBus Driver Methods ..................................................................................... 365
20.3.2 Header Files ....................................................................................................... 365
20.3.3 BSP Configuration ............................................................................................. 366
20.3.4 Available Utility Routines ................................................................................ 367
20.3.5 Initialization ....................................................................................................... 367
20.3.6 Debugging .......................................................................................................... 368
21 Other Driver Classes .................................................................................. 371
21.1 Introduction ...................................................................................................................... 371
21.2 Overview ........................................................................................................................... 371
21.3 VxBus Driver Methods ................................................................................................... 372
21.4 Header Files ...................................................................................................................... 373
21.5 BSP Configuration .......................................................................................................... 373
21.6 Available Utility Routines ............................................................................................. 373
21.7 Initialization ..................................................................................................................... 373
21.8 Debugging ........................................................................................................................ 374
PART III: DEVICE DRIVER PORTING
22 Legacy Drivers and Migration ................................................................... 377
22.1 Migration Overview ....................................................................................................... 377
22.2 Legacy Driver Overview ................................................................................................ 377
23 Migrating to VxBus ..................................................................................... 379
23.1 Overview ........................................................................................................................... 379
23.2 Available Resources ........................................................................................................ 379
Template Drivers ............................................................................................... 379
23.3 Porting an Existing VxWorks Driver to VxBus .......................................................... 380
23.3.1 Verifying Your Hardware and Driver Code .................................................. 380
23.3.2 Creating the VxBus Infrastructure ........
2018-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人