550 likes | 1.1k Views
VxWorks 与 Tornado. 参考书: 《 嵌入式实时操作系统 Vxworks 及其开发环境 Tornado》 ,孔祥营,电力出版社, 2002. VxWorks 支持 32 位的 CPU. 包括 Intel 公司的 x86 、 Motorola 公司的 68k 和 PowerPC 、 MIPS 、 ARM 、 Intel 公司的 i960 、 Hitachi 公司的 SH. VxWorks 的 IMAGE 有三个层次、四个部分。. wind kernel. 1 . wind kernel 是一个微内核,这个特点导致 VxWorks 有许多的 Components
E N D
VxWorks与Tornado 参考书:《嵌入式实时操作系统Vxworks及其开发环境Tornado》,孔祥营,电力出版社,2002
VxWorks支持32位的CPU • 包括Intel公司的x86、Motorola公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH
wind kernel • 1.wind kernel是一个微内核,这个特点导致VxWorks有许多的Components • 2.wind kernel对外设不做假设。所谓对外设不做假设是指操作系统不假设用户开发的板子上是否有总线以及有什麽样的总线,也不假设内存的大小及内存如何定位,不假设I/O及有多少I/O。 • IMAGE中就要有板级支持包BSP(即驱动程序)来完成对外设的管理。
功能组成:任务的管理与调度、任务的同步与通信、动态内存的管理、软时钟的管理、I/O管理功能组成:任务的管理与调度、任务的同步与通信、动态内存的管理、软时钟的管理、I/O管理
版本 • 最简内核 • 任务的管理与调度 • 纳核 • 8k • VxWorks:标准的单CPU版本 • VxFusion:标准的多CPU版本
统一的API • 由操作系统内核提供的服务原语搭建起来的 • 服务原语,是不可打断的 • 系统调用的时间尽量小、尽量是常量和可确定。
验证性 • FAA • FDA
实时性 • 使tc(context swich)和ts(system call)尽可能小、尽可能是常量和可确定 • 可确定 • tc和ts有一个上限 • 不会出现峰值 • 不会随系统任务的增多而增多
Components • 基本模块 • 领域扩展模块(领域解决方案)
基本模块 • WDB Agent:两种工作模式(中断或查询),支持系统级和任务级调试 • Shell: • Loader: 支持动态地下载或卸载模块 • WindView支持模块:支持利用WindView动态调试目标程序 • CodeTest支持模块:支持利用CodeTest测试系统的代码覆盖率和内存使用情况 • SENS:是VxWorks的可裁减的增强型网络协议栈(Scalable Enhanced Network Stack)。它除了提供TCP/IP协议栈,还支持其他协议。最大的特点就是采用零拷贝机制,即打包/解包是通过指针的方式
网络扩展模块:提供了丰富的网络协议(BSD4.3,TCPV4,UDP etc.),路由协议(OSPF,RIP etc.)和网络应用(ping,SNMP,DHCP server/client,DNS,telnet server,FTP server,NFS server/client,TFTP server/client)等 • 文件系统:支持五种文件格式:MS-DOS、RAW、NFS、CD-ROM 、RT11卷标格式(为了实现后向兼容)对存储介质不做假设,可以是电的(如PCMCIA的ATA)、磁的 • ANSI C模块:解决了以下问题:库集成、库不可重入、版本兼容及移植性,该库中的函数大致可分为4类:字符处理功能、字符串处理功能、通用功能、I/O处理功能
POSIX: • VxDCom: • VxMP: • VxTrueFFS: • VxVMI:
领域扩展模块(领域解决方案) • Telecom&Datacom: TMS(Tornado for Managed Switches):交换机管理解决方案 • 应用:(1)企业网:管理hub、switch、router; • (2)Carrier网:边缘交换机,VoIP网关,核心路由器; • (3)消费类网络:Cabel Modem,xDSL Modem,网关,家用网络设备
Consumer Elec: TIA(Tornado for Internet Appliance) • 应用: Set_top Box:卫星、Cable、Web、 PDA • Digital Camera • Embedded Browser
BSP-Board Support Package • 由两部分组成 • 初始化、驱动程序 • 初始化 • 从系统上电复位开始直到wind kernel和usrRoot根任务启动的这段时间,系统的执行过程 • 驱动程序:一些包含I/O操作的子函数
初始化 • 包括: • CPU Init • CPU Init初始化CPU的内部寄存器。 • Board Init • Board Init初始化智能I/O的寄存器,将device打通 • System Init • System Init为系统的运行准备数据结构,进行数据初始化。
驱动程序 • 不能自动执行,只能被动调用 • 三种方式 • 任务直接调用 • 任务调用System Call • 任务调用服务
对内存使用采用Flat Mode • 静态分配的IMAGE占用空间(.code、.data、.bss)、系统的动态空间(wind kernel创建的REGION#0)、用户的动态空间。
VxWorksk可被静态或动态链接 • VxWorks在开发阶段可动态地下载目标文件,并与操作系统及其它目标文件动态链接。 • 链接以后是浮动的,只在装载时才与绝对物理地址相对应 • VxWorks成品阶段是采用静态链接的。
成品时的IMAGE和调试时的IMAGE • 成品时的IMAGE有两种运行模式: • ROM-resident image:BSP初始化时把image中的data段复制到RAM中,code在ROM中运行
ROM-based image:BSP初始化时把image完全搬到RAM中执行,包括image中的data段和bss段。(分压缩和非压缩两种类型)
调试时的Image • 先由引导代码把ROM Boot Program搬到RAM中,Boot Program初始化调试下载通道和调试信息输出通道 • 被调试的IMAGE通过Host与Target之间的某种耦合方式download到Target的RAM中,然后接受控制权,实现调试
Image的在线升级 • 存储介质:flash、flash disk • 升级通道: • 升级时期: • 升级保护: • 升级安全: • 升级IMAGE的部分或整体
硬件: • 非在线问题(工艺) • 在线问题(设计问题):上电以后不能正常运行 • BSP: • VxWorks和Components:没有发现bug • App • 语句逻辑层:程序语句的逻辑是否正确 • 功能层:设计的功能是否可以实现 • 任务层:任务的划分、调度是否合理 • 系统层:系统的可靠性、效率
调试的手段及工具 • 纯硬的手段 • 万用表、示波器、逻辑分析仪,针对非在线的硬件问题和部分的在线硬件问题 • 半硬半软的手段 • ICE、BDM,针对部分硬件的在线问题和BSP的调试 • 纯软的手段 • Cross Debugger,针对App的调试
ICE的方法 • 运行的IMAGE在仿真器中,由仿真器的CPU在用户的硬件环境下运行来调试软件。 • 限制:价格/使用率的比率太高,CPU dependence
BDM的方法 • 在运行IMAGE的CPU上支持一种断点逻辑 • 硬件调试代理 • 宿主机通过并口连接的Adapter连接到CPU的BDM接口上,进行软件的调试。 • 限制:CPU必须支持BDM方式。 • 步骤:BDM Debugger下载Register list激活板子,BDM Debugger IMAGE下载到目标板的RAM中。
软件调试 • 宿主机与目标机通过某种方式耦合,宿主机上的调试器通过目标机上的调试代理来进行软件的调试 • 优点是性价比高
Cross Debugger(Cross wind) • 照相机(静态调试) • 在某一个时间点捕捉到CPU的寄存器、内存、应用程序的任务、队列、信号量等,可以调试App下面的2.5层 • 摄象机(动态调试) • WindView、System Browser,可以看到程序在动态运行时发生的情况,如任务的切换轨迹等; • CodeTest可测试系统的代码覆盖率以及内存的动态分配和释放情况 • Scope Tools可分析系统内某个变量随时间的变化曲线,每个函数或任务占用CPU的时间,以及内存的使用情况。
WindView • 按功能分 • trace:用于发现偶然bug,即与历史状态相关的bug • profile:利用直方图、百分率进行统计分析。 • 举例:通过直方图统计任务对CPU的占用时间,进行分析 • 一个事后分析的工具,记录一个Recorder,以file的形式存在宿主机上,然后对其进行分析。 • 这个Recorder具有三个特点:single buffer、transmit、wrap round • VxWorks采用wrap round方式,总是记录最后一段时间的系统运行情况,在记录开始前应该设置de-trigger的events选项,以免在通信还未中断的情况下已经死机,目标机就会把死机的标志不断地送回宿主机,而会把死机前记录的情况覆盖掉
System Browser是一个定时采样、事后分析的工具,采样的对象可以是堆栈、队列、堆栈等
Vxworks/嵌入式Linux共同特性 • 多任务,多进程的操作系统。 • 具备软实时特性,标准的linux内核不具备硬实时特性,需另加硬实时调度器,构成真正的实 时操作系统。
Embedded Linux的优点 • 系统开发成本低,投资效益高,源码开放。 • 现有程序资源丰富, web服务器,数据库,GUI等。 • 开放的操作系统,网络功能强大,拥有完整TCP/IP协议栈。 • 程序的通用性好,代码可重用。 • 主机式开发环境: 摒弃了复杂的宿主机/目标机的开发模式。在由目标机构造的系统中,真 正做到了直接开发应用程序的代码。 • 产品开发速度加快,提早上市,提高了竞争力,控制了开发风险。
embedded Linux的缺点 • 占用资源较大。运行linux至少需要8M-16M的内存、2M的ROM • 没有VxWorks普及 • Embedde linux却是发展方向。
Tornado • WIN95/NT环境下的第二代IDE,是基于软总线的开放环境,是一种层次结构:Manager、Project Tools、Internal BUS、symbol server & communicate server。
Tools Set • Cross Compiler: • GNU for all architecture • Diab Data for PPC,68k,Mips,ARM etc. • Cross Debugger: • 照相机:Cross Wind • 摄象机:WindView,System Browser,CodeTest,Scope Tools • Project Facility: VxWorks的自动配置工具 • Simulator: Integrated simulator,full simulator
任务三种状态 • Ready • Delayed • Pended • 事件驱动 • RE:不同优先级抢占,同一优先级时间片轮转 • ER:被其他任务抢占或时间片耗尽 • EB:所需资源没有满足 • BR:所需资源得到满足
Ready Pended Delayed Executing Suspended