logo资料库

VxWorks5.5开发教程.pdf

第1页 / 共168页
第2页 / 共168页
第3页 / 共168页
第4页 / 共168页
第5页 / 共168页
第6页 / 共168页
第7页 / 共168页
第8页 / 共168页
资料共168页,剩余部分请下载后查看
第一章 Wind River ........................................................... 4 1.1 风河系统公司简介 ..................................................... 4 1.2 实时操作系统 Vxworks 简介............................................. 4 第二章 Tornado .............................................................. 6 2.1 安装开发环境 ......................................................... 6 2.2 Tornado 集成开发环境简述 ............................................. 6 2.2.1 Tomado 编辑器 .................................................. 6 2.2.2 工程管理 ....................................................... 7 2.2.3 编译 ........................................................... 7 2.2.4 目标机系统状走浏览器 Browser .................................... 8 2.2.5 文叉调试器——Crosswind ........................................ 8 2.2.6 C 语言命令 shell 工具 WindSh ..................................... 9 2.2.7 VxWorks 仿真器——VxSim ........................................ 9 2.2.8 目标机软件逻辑分析——WindView ................................. 9 2.2.9 用户定制功能 .................................................. 10 2.3 一个基于 VxSim 的简单工程 ............................................ 10 2.3.1 开始 tornado................................................... 10 2.3.2 创建工程 ...................................................... 11 2.3.3 向工程加例子源代码 ............................................ 13 2.3.4 编译工程 ...................................................... 15 2.3.5 下载工程到 vxworks 目标模拟器 .................................. 17 2.3.6 从 Tornado Shell 运行应用程序 .................................. 20 2.3.7 查看目标内存使用情况 .......................................... 21 2.3.8 查看任务...................................................... 22 2.3.9 修改任务的优先级和查找错误 .................................... 24 第三章 基本工程实践 ........................................................ 26 3.1 Bootable 工程实践 ................................................... 26 3.2 Downloadable 工程实践 ............................................... 30 第四章 驱动实验 ............................................................ 35 WindML 3.0.3 开发....................................................... 35 4.1、WindML 简介 ........................................................ 35 4.2、安装和配置......................................................... 39 4.3、WindML 体系 ........................................................ 39 4.4、WindML 开发流程简介 ................................................ 40 4.5、UPTECH2410 的 LCD 开发流程详解 ...................................... 41 4.5.1 WindML 的 BSP 修改 ............................................. 41 4.5.2 LCD 配置文件的建立 ............................................ 44 4.5.3 LCD 驱动程序开发 .............................................. 51 4.6、WindML 例程分析 .................................................... 57 4.6.1 wexbasic 实例分析 ............................................. 57 4.6.2 ugldemo 实例分析 .............................................. 67 4.7、2410 LCD WindML 软件使用方法 ....................................... 70 第五章 应用实验 ............................................................ 71 5.1 串口 ................................................................ 71
5.1.1 串口概述...................................................... 71 5.1.2 串口操作...................................................... 71 5.1.2.1 open.................................................... 72 5.1.2.2 close................................................... 72 5.1.2.3 read.................................................... 73 5.1.2.4 write................................................... 73 5.1.2.5 ioctl................................................... 73 5.1.3 实验.......................................................... 74 5.1.3.1 使用 wirte 函数对串口进行写操作 .......................... 74 5.1.3.2 使用 read 函数对串口进行读操作 ........................... 77 5.1.3.3 使用 ioctl 函数对串口进行控制 ............................ 78 5.2 基于块设备的文件系统................................................ 80 5.2.1 VxWorks 支持的文件系统 ........................................ 80 5.2.2 文件系统的配置................................................ 81 5.2.3 ramDrv........................................................ 82 5.3 网络通信............................................................ 87 5.3.1 概述.......................................................... 87 5.3.2 VxWorks 套接字 ................................................ 88 5.3.3 Socket 函数 ................................................... 88 5.3.3.1 socket.................................................. 88 5.3.3.2 bind.................................................... 89 5.3.3.3 listen.................................................. 91 5.3.3.4 accept.................................................. 91 5.3.3.5 connect................................................. 92 5.3.3.6 send 和 recv............................................. 92 5.3.3.7 sendto 和 recvfrom ....................................... 94 5.3.4 实验.......................................................... 95 5.3.4.1 Ping.................................................... 95 5.3.4.2 流套接字(基于 TCP) .................................... 99 5.3.4.3 数据报套接字(基于 UDP) ............................... 102 5.3.4.4 FTP.................................................... 104 5.3.4.5 以太网包的截取与解析 ................................... 111 5.4 多任务环境......................................................... 115 5.4.1 任务......................................................... 115 5.4.1.1 概述................................................... 115 5.4.1.2 任务函数库............................................. 116 5.4.2 任务间的通信机制............................................. 116 5.4.2.1 信号量................................................. 116 5.4.2.2 消息队列............................................... 120 5.4.2.3 管道................................................... 122 5.4.2.4 信号................................................... 122 5.4.4 实验......................................................... 124 5.4.4.1 创建任务,利用 WindView 观察任务调度 .................... 124 5.4.4.2 利用二进制信号量同步任务 ............................... 126
5.4.4.3 利用计数器信号量同步任务 ............................... 130 5.4.4.4 利用互斥信号量保护共享资源 ............................. 135 5.4.4.5 利用消息队列进行任务间通信 ............................. 141 5.4.4.6 利用管道进行任务间通信 ................................. 146 5.4.4.8 信号的使用............................................. 147 5.5 中断............................................................... 151 5.5.1 硬件中断..................................................... 151 5.5.2 看门狗定时器(Watchdog)..................................... 153 5.5.3 实验......................................................... 154 5.5.3.1 硬件中断............................................... 154 5.5.3.2 看门狗定时器的使用..................................... 158 附录 ...................................................................... 161 1.建立超级终端........................................................ 161 2.目标机服务器-Target Server......................................... 162 3. FTP 服务器 .......................................................... 163 4 WindSH.............................................................. 165 4.1 启动和关闭 WindSh............................................... 165 4.1.1.启动 WindSh .............................................. 165 4.1.2.中断 WindSh 命令.......................................... 166 4.1.3.关闭 WindSh .............................................. 166 4.2 WindSh 的使用 .................................................. 166 4.2.1 任务管理命令 ............................................. 166 4.2.2 任务信息命令 ............................................. 166 4.2.3 系统命令 ................................................. 167 4.2.4 网络状态显示 ............................................. 167 4.3 运行目标机程序 ................................................. 167 4.3.1VxWorks 系统函数的调用 .................................... 168
第一章 Wind River 1.1 风河系统公司简介 风河系统公司(Wind River)是全球领先的嵌入式软件与服务商,也是业界唯一提 供面向行业市场的嵌入式软件平台的厂商。它所提供的嵌入式软件平台包括集成化 的实时操作系统、开发工具和技术。风河的产品和专业服务已经在许多市场领域得 到认可,主要包括空间技术及国防、汽车、消费电子、工业制品和网络基础设施领 域。世界各地的电子设备制造商普遍把风河公司的嵌入式软件产品作为行业标准。 包括 NASA 的“勇气号”火星探测器在内的航空航天设备也采用风河嵌入式软件。 1.2 实时操作系统 Vxworks 简介 VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统 (RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以 及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠 性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求 极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。 VxWorks操作系统是实时多任务操作系统. 实时多任务操作系统能在确定的时间内 执行其功能,并对外部的异步事件作出响应的计算机系统。多任务环境允许一个实时应 用作为一系列独立任务来运行,各任务有各自的线程和系统资源。VxWorks系统提供多 处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。 实时系统的 另一关键特性是硬件中断处理。为了获得最快速可靠的中断响应,VxWorks系统的中断 服务程序ISR有自己的上下文。 VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根 据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可靠性。系统 的链接器可按应用的需要自动链接一些目标模块。这样,通过目标模块之间的按需组合, 可得到许多满足功能需求的应用。 VxWorks操作系统的基本构成模块包括以下部分: 高效的实时内核Wind VxWOrks实时内核(Wind)主要包括基于优先级的任务调度、任务同步和通信、中断处 理、定时器和内存管理。 兼容实时系统标准POSIX VxWOrks提供接口来支持实时系统标准P.1003.1b. I/O系统 VxWOrks提供快速灵活的与ANSI-C相兼容的I/O系统,包括UNIX的缓冲I/O和实时系统 标准POSIX的异步I/O。VxWOrks包括以下驱动: 网络 --- 网络设备(以太网、共享内存) 管道 --- 任务间通信 RAM --- 驻留内存文件 SCSI --- SCSI硬盘,磁碟,磁带
键盘 --- PC x86键盘(BSP仅支持x86) 显示器 --- PC x86显示器(BSP仅支持x86) 磁碟 --- IDE和软盘(BSP仅支持x86) 并口 --- PC格式的目标硬件 本机文件系统 I/O系统 VxWorks的文件系统与MS-DOS、RT-11、RAM、SCSI等相兼容。 网络特性 VxWorks网络能与许多运行其它协议的网络进行通信,如TCP/IP、4.3BSD、NFS、UDP、 SNMP、FTP等。VxWorks可通过网络允许任务存取文件到其它系统中,并对任务进行远程 调用。 虚拟内存(可选单元VxVMI) VxVMI主要用于对指定内存区的保护,如内存块只读等,加强了系统的健壮性。 共享内存(可选单元VxMP) VxMP主要用于多处理器上运行的任务之间的共享信号量、消息队列、内存块的管理。 驻留目标工具 Tornado集成环境中,开发工具工作于主机侧。驻留目标外壳、模块加载和卸载、符号 表都可进行配置。 Wind基类 VxWorks系统提供对C++的支持,并构造了系统基类函数。 工具库 VxWorks系统向用户提供丰富的系统调用,包括中断处理、定时器、消息注册、内存分 配、字符串转换、线性和环形缓冲区管理,以及标准ANSI-C程序库。 性能优化 VxWorks系统通过运行定时器来记录任务对CPU的利用率,从而进行有效地调整,合理安 排任务的运行,给定适宜的任务属性。 目标代理 目标代理可使用户远程调试应用程序。 板级支持包 板级支持包提供硬件的初始化、中断建立、定时器、内存映象等。 VxWorks仿真器(VxSim) 可选产品VxWorks仿真器,能模拟VxWorks目标机的运行,用于应用系统的分析。
第二章 Tornado Tornado 2.2 是嵌入式实时领域里最新一代的开发调试环境。。Tornado 给嵌入式系 统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado 包含三个高 度集成的部分:运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;运行在目标 机上的高性能、可裁剪的实时操作系统 VxWorks;连接宿主机和目标机的多 种通讯方式, 如:以太网,串口线,ICE 或 ROM 仿真器等。 在集成开发环境方面, VxWorks Tornado II 型提供了二次开发途径。集成开发环境是一种更直观的自动化环境,使得不同使用经验 的开发人员可以快速、方便地在 VxWorks 上面开发应用 2.1 安装开发环境 2.2 Tornado 集成开发环境简述 Tornado 集成开发环境使用户创建和管理工程、建立和管理宿主机与目标机之间的通信 以及运行、调试和监控 Vxworks 应用变得非常方便。 Tornado 集成开发环境具有如下的主要特点: 集成源码级编辑器; 工程管理工具; 包含 C 和 C++编译及 make 工具;. 包含目标机系统状态浏览器——Browser; 包含图形化源码级交叉调试器——CrossWmd; 包含 C 语言命令 shell 工具——WindSh; 包含 VxWorks 仿真器——Vxsim; 包含目标机软件逻辑分析仪——WmdView; 具有用户定制功能,包括编辑器和配置工具的定制,Tornado 本身图形用户界面的 定制。 2.2.1 Tomado 编辑器 Tornado 源码级编辑器具有以下特点: 标准的文档处理功能; C 和 C++语法关键字的突出显示; 调试程序时追踪代码执行; 编译连接程序时错误及警告信息显示。
2.2.2 工程管理 Tornado 工程管理工具使得组织、配置、构造 VxWorks 应用变得简单化。这些处理 过程是以图形化方式来完成,如图 2.1 所示的组织、配置及构造应用工程。构造 VxWorks 包括配置编译、连接选项等操作通过选择图 2.2 所示对话框来实现。 2.2.3 编译 Tornado 包含 GNU 编译器以及一系列完整的开发工具,具体如下: cpp,C 预处理程序; gcc,C 和 C++编译器; make,构造程序自动操作工具: ld,目标代码连接器; 有效的二进制文件; 这些工具都是自由软件,来源于自由软件组织(Free Software Foundation. FSF)。 Wind River 公司经过测试和验证把它们集成到 Tornado 开发环境中,在这里不作详细介 绍,更多的信息请阅读《Tornado user's guide》、《GNU ToolKit User's Guide》和《GNU Make》等书籍。 图 2.1 组织、配置及构造应用程序
图 2.2 编译、连接选项配置 2.2.4 目标机系统状走浏览器 Browser Browser 是 Tornado 命令解释器 WindSh 的图形化工具。与命令解释器一样,它可 以在需要的时候显示目标机信息。 Browser 的主窗口显示目标系统的整个状态,它允许用户请求显示个别的目标机操作 系统对象的状态,例如任务、信号量、消息队列、内存块和看门狗定时器。这些显示会根据 用户命令更新或者按照开发者的设定周期性地更新。 2.2.5 文叉调试器——Crosswind 源码级调试器 CrossWind 提供所有调试功能的图形化和命令行的接口。功能包括符号 反汇编、任务或系统断点、单步、系统状态显示和异常处理。 CrossWind 是 GNU 源码级调试器(GDB)的一个扩充版本。最明显的对 GDB 的扩 充就是图形接口。另外 CrossWind 提供了许多 Tcl 脚本接口,允许开发者创建熟悉的调试 器宏或者为自己的需求扩充 CrossWind。为了最大的灵活性,CrossWind 的命令接口集 成了 GDB 的命令行接口和 WindSh(Tornado 命令解释器)的功能。 在宿主机上使用 Crosswind,可以创建、运行和调试目标机运行系统中的任务。 Crosswind 也可以捕获己经由应用程序、Tornado 命令解释器或者目标机驻留的命令解释 器创建、运行的任务。 Crosswind 支持应用程序断点和系统断点。开发者可以使用它在 c 和 C++源语言级、 汇编语言级或混合模式下调试应用程序代码。 Crosswind 除了可以与 Tornado 目标机代理通信,也可以与为基于目标机的工具配置 过的目标机直接通信。
分享到:
收藏