1 / 69

VxWorks 及其应用开发

VxWorks 及其应用开发. 陈香兰 xlanchen@ustc.edu.cn http://staff.ustc.edu.cn/~xlanchen 2006 年 7 月. 课程内容. VxWorks 和 Tornado 简介 任务和任务间通信 信号、中断处理与定时机制 调试环境与实例分析 网络编程 VxWorks 操作系统配置. VxWorks 及其集成开发环境 Tornado 简介. xlanchen@2006.7.5. 主要内容. VxWorks 操作系统及其特点 VxWorks 操作系统的组成 VxWorks 开发环境的基本结构

tadita
Download Presentation

VxWorks 及其应用开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VxWorks及其应用开发 陈香兰 xlanchen@ustc.edu.cn http://staff.ustc.edu.cn/~xlanchen 2006年7月

  2. 课程内容 • VxWorks和Tornado简介 • 任务和任务间通信 • 信号、中断处理与定时机制 • 调试环境与实例分析 • 网络编程 • VxWorks操作系统配置

  3. VxWorks及其集成开发环境Tornado简介 xlanchen@2006.7.5

  4. 主要内容 • VxWorks操作系统及其特点 • VxWorks操作系统的组成 • VxWorks开发环境的基本结构 • Tornado集成开发环境的主要组成 • Tornado集成开发环境的工具集

  5. VxWorks操作系统 • VxWorks是专门为实时嵌入式系统设计开发的操作系统软件,提供 • 高效的实时任务调度 • 中断管理 • 实时的系统资源 • 实时的任务间通信

  6. VxWorks的特点 • 其微内核Wind是一个具有较高性能的、标准的嵌入式实时操作系统内核 • 具有较好的可剪裁性 • 支持应用程序的动态链接和动态下载 • 具有较好的兼容性

  7. VxWorks操作系统的组成 • VxWorks操作系统包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分 • VxWorks只占用很小的存储空间,并可高度剪裁,保证了系统能以较高的效率运行

  8. VxWorks体系结构框图 • 板级支持包:Board Support Package • 板级支持包对各种板子的硬件功能提供了统一的 • 软件接口,包括 • 硬件初始化 • 中断的产生和处理 • 硬件时钟和计时器管理 • 局域和总线内存的地址映射 • 内存分配等等 • 每个BSP包括一个ROM启动或其他启动机制 TCP/IP协议栈和 网络驱动 • I/O系统 • VxWorks提供了一个快速灵活的、与ANSI C兼容的 • I/O系统,包括 • UNIX标准的缓冲I/O • POSIX标准的异步I/O • I/O系统 • VxWorks包括以下驱动程序: • 网络驱动:用于网络通信,支持多种网卡 • 管道驱动:用于任务间通信 • RAM盘驱动:用于常驻内存的文件 • SCSI驱动,用于SCSI设备 • 键盘驱动,用于x86键盘,仅存在于x86BSP • 显示驱动:用于x86VGA文本显示,仅存在于x86BSP • 磁盘驱动,用于IDE/ATA设备,仅存在于x86BSP • 并口驱动,用于PC风格的目标机 • 实用库 • VxWorks提供了一个实用例程扩展集,包括 • 中断处理、 • 看门狗计时器、 • 消息登录、 • 内存分配、 • 字符扫描、 • 线缓冲和环缓冲管理、 • 链表管理 • 和ANSI C标准 • 高性能的实时操作系统核心:Wind包括: • 采用基于优先级的、可抢占的多任务调度 • 任务间同步机制 • 进程间通信机制 • 中断处理 • 看门狗 • 内存管理机制 文件系统: VxWorks提供适用于实时系统应用的快速文件系统 这些设备都使用一个标准接口,从而使得文件系统 能够灵活的在设备驱动程序上移植 • 文件系统: • VxWorks支持的文件系统包括: • dosFs:与MS-DOS兼容的文件系统 • rt11Fs:一种与RT11操作系统兼容的文件系统 • rawFs:原生文件系统 • 将整个盘作为一个文件,允许根据偏移读写磁盘的一部分 • tapeFs、TrueFFS、CdRomFs 文件系统: VxWorks中,普通数据文件、外部设备都统一作为文件处理

  9. 远程文件访问,包括基于client/Server的 NFS机制以及使用RSH、FTP或TFTP的 非NFS机制 VxWorks的网络设施 VxWorks的网络设施包括: 远程的登录和telnet 远程过程调用RPC(Remote Procedure Call 以及bootp和ARP代理 与BSD套接字兼容的编程接口 可选的简单网络管理协议SNMP (Simple Network Management Protocol) TCP/IP协议栈 无论是松耦合的串行线路、标准的以太网连接还是 紧耦合的利用共享内存的背板总线,所有的VxWorks 网络机制都遵循标准的Internet协议

  10. 其他VxWorks组件 • 以及: 虚拟内存(VxVMI)与共享内存(VxMP) • VxVMI为带有MMU的目标板提供了虚拟内存机制 • VxMP提供了共享信号量、消息队列和在不同处理器之间的共享内存区域 目标代理(Target Agent) 基于目标机的工具

  11. 目标代理(Target Agent) • VxWorks的开发使用基于主机/目标机结构的交叉开发环境 • 目标机:运行VxWorks和应用程序的板子,通常为嵌入式板子 • 主机:运行Tornado集成开发环境,为目标机生成VxWorks和应用程序 • 主机与目标机之间通过以太网或串口相连,其通信由Target server/Agent方式进行 开发环境 (Target Server) 目标系统(Target Agent) 主机 目标机 以太网/串口

  12. 目标代理,Target Agent遵循WBD(Wind Debug)协议,允许目标机与主机上的Tornado开发工具相连。 • 在目标代理的默认设置中,目标代理是以VxWorks的一个任务tWdbTask的形式运行的

  13. 默认方式下,target server与 target agent通过网络通信, 但用户也可以改变通信方式 • TargetServer向目标代理发送调试请求 • 调试请求可以决定目标代理对系统中其他任务的控制和处理

  14. Tornado集成开发环境简介 • Tornado集成开发环境 • 是实现嵌入式实时应用程序的完整的软件开发平台 • 是交叉开发环境运行在主机上的部分 • 是开发和调试VxWorks系统不可缺少的系统组成部分 • Tornado是一个窗口环境,集成了编辑器、编译器、调试器于一体

  15. Tornado开发系统的组成 主机工具与VxWorks系统之间 的通信由Target server/Agent共 同完成 Tornado开发系统包含三个高度集成的部分: VxWorks:运行在目标机上的高性能、 可剪裁的实时操作系统 Tornado开发环境:运行在宿主机上, 包括一组交叉开发工具和实用程序, 可对目标机上的应用进行跟踪和调试 连接宿主机和目标机的多种通信方式 以太网、串口线等等

  16. Tornado IDE的主要组成工具 • 命令执行工具——WindSh • C语言命令shell • 这是Tornado所独有的功能强大的命令行 • 解释器 • 可以直接解释C语言表达式、调用目 • 标机上的C函数、访问系统符号表中 • 登记的变量 • 还可以直接执行TCL语言 • 可以实现所有的调试功能,包括 • 下载/删除软件模块 • 创建并发起一个任务、删除任务 • 创建/删除端点 • 运行/单步/继续执行程序 • 查看/修改内存、寄存器、变量 • 查看任务列表、内存使用情况、 • CPU利用率 • 查看特定的对象(任务、信号量、 • 消息队列、内存分区、类) • 复位目标机等 VxSim对软件开发者的意义: 在嵌入式系统开发中软件的开发通常受到硬件开发 进度的制约 由于软件开发必须滞后于硬件开发,影响了产品 研发进度 VxSim在一定程度上解决了这个问题:使得用户可以 在工程开发初期,在硬件环境尚不具备的情况下,可 以利用Tornado进行与硬件无关模块的设计 集成的源代码编辑器 • 调试器,包括命令行和图形接口 • 工具CrossWind/WDB就是图形化的增强型交叉调试器 • 远程源代码集成调试器 • 支持任务级和系统级调试 • 支持混合源代码和汇编代码显示 • 支持多目标机同时调试 • 工程配置工具——Project Facility/Configuration • 可以对VxWorks操作系统及其组件进行自动地配置 • Makefile自动生成维护 • 软件工程维护 • 自动的依赖性分析 • 代码容量计算 • 自动剪裁 • 大大缩短了开发周期 • C/C++编译环境 • VxWorks提供交叉编译器、iostreams类库和 • 一系列的工具来支持C语言和C++语言 • Diab C/C++ Compiler:唯一获得Motorola • 白金大奖的嵌入式编译器 • GNU C/C++ Compiler:应用最广泛的编译器 • 提供对C++全面的支持 目标机系统状态浏览器——browser 这是Tornado shell的一个图形化组件 提供目标系统的全面状态总结,也允许开发者监视独立 的目标系统对象:任务、信号灯、消息队列、内存分区 、定时器、模块、堆栈等 开发者可以选择周期性或条件性的更新状态值 WindView, 集成的软件逻辑分析仪(诊断分析工具) 可以向开发者提供目标机硬件上实际运行的应用程序的详细情况 可以与VxSim一起使用 集成的VxWorks目标仿真器——VxSim 提供与真实目标机一致的调试和仿真运行环境 允许开发者可以在没有BSP、操作系统配置以及目标机 硬件的情况下进行开发

  17. 其他核心工具 • 多语言浏览器——WindNavigator • 提供源代码浏览 • 图形化显示函数调用关系 • 快速代码定位

  18. 图形化核心配置工具——WindConfig • 使用图形向导方式智能化的自动配置VxWorks内核及其组件参数 • 增量加载器 • 可以动态的加载新增模块并在目标机与内核实现动态链接运行,不必重新下载内核及未改动的模块

  19. Tornado IDE的工作方式 • Tornado IDE不受目标机资源的约束 • 上述工具运行在主机上,依赖存放在主机上的目标机系统的符号表 • 它们与目标机通过target server/agent交互

  20. 使用Tornado IDE可以大大缩短嵌入式开发周期 • Tornado的核心功能之一:支持动态链接与加载 • 开发者可以分批将目标模块加载到目标系统上 • 不必在主机上将应用程序与内核链接起来,然后整个的下载到目标系统上去 • 可以大大缩短编辑-测试-调试周期

  21. Tornado的简单教程 xlanchen@2006.7.5

  22. 主要内容 • 创建project • Build project • 运行、观察、调试project

  23. Tornado的安装

  24. 启动Tornado 创建工程对话框 第一次使用Tornado,会弹出这个窗口 创建一个新的project 以后根据这里的选择,弹出或不弹出这个对话框 如果需要使用这个对话框,可以通过File中的New project菜单获得

  25. Bootable VxWorks Image • Image将运行在目标机上,包括 • RTOS内核、BSP、应用程序和组件4个部分 Application BSP components Wind内核 File System WDB Agent Shell

  26. 作为演示,我们创建一个downloable的应用程序模块,作为演示,我们创建一个downloable的应用程序模块, 并让其运行在目标机仿真器上

  27. 建立一个可下载应用:确定project名与路径

  28. 选择工具链(toolchain) 工具链是一套用来建造针对特定目标机 应用的交叉开发工具 Tornado提供的工具链是基于GNU的预处 理、编译、汇编和链接器 针对目标仿真器,默认的工具链名字形式 是SIMhostOsgnu 对NT主机是SIMNTgnu

  29. 确认所做的选择

  30. Workspace0和example1的信息窗口

  31. 此时在上面选定的目录中

  32. 添加源文件 • 第一步:添加源文件到开发目录中 • 第二步:将这个源文件加入到example1中

  33. 第一步:添加源文件到开发目录中 从Tornado的安装目录下: (安装目录)\target\src\demo\start拷贝源文件到开发目录中D:\VxWorks_examples

  34. 第二步:为example1添加源文件 右键

  35. 此时,example1的信息窗口 加入的源文件 源文件所依赖的外部文件 即将由源文件所产生的目标文件 cobble.c产生的目标文件 Tornado自动为example1生成的目标文件,包含所有目标文件

  36. Build project • 首先预览一下默认的build设置 编译器、汇编器、链接器选项 双击 宏 Makefile默认规则

  37. 根据上述默认规则,Build example1 右键

  38. 假如在源文件中有错误 • 例如,在cobble.c中不小心使用了“//” • 在build的时候将被检查出错

  39. 双击

  40. 出错位置 出错信息

  41. 删除出错的那一行内容 • 当编译成功后,就可以将应用下载到目标仿真器上

  42. 启动目标机仿真器

  43. 目标机仿真器输出窗口 选择

  44. 运行browser、shell、debugger、simulator等等

  45. 在运行应用之前,应当先配置debugger

  46. 选择 当一个异常发生时,调试器 可以自动地与任务关联

  47. 运行debugger • 下面的状态栏中变成 • 工具栏中的调试图形接口被激活

  48. 运行shell • Tornado Shell也就是WindSh是一个C语言命令解释器 • 它允许在shell命令行中调用下载到目标机上的任何程序 • 它自身还提供一套用于任务管理、访问系统信息、调试等命令

More Related