嵌入式系统10vxworks简介_第1页
嵌入式系统10vxworks简介_第2页
嵌入式系统10vxworks简介_第3页
嵌入式系统10vxworks简介_第4页
嵌入式系统10vxworks简介_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VxWorks的

嵌入式开发技术潘建VxWorks简介VxWorks支持32位的CPU,包括Intel公司的x86Motorola公司的68k和PowerPCMIPSARMIntel公司的i960Hitachi公司的SH2VxWorks的IMAGE有三个层次、四个部分。3windkernel

1.windkernel是一个微内核,这个特点导致VxWorks有许多的Components2.windkernel对外设不做假设。所谓对外设不做假设是指操作系统不假设用户开发的板子上是否有总线以及有什么样的总线,也不假设内存的大小及内存如何定位,不假设I/O及有多少I/O。IMAGE中要有板级支持包BSP(即驱动程序)来完成对外设的管理。4功能组成:任务的管理与调度、任务的同步与通信、动态内存的管理、软时钟的管理、I/O管理

5版本最简内核任务的管理与调度纳核8kVxWorks:标准的单CPU版本VxFusion:标准的多CPU版本

6统一的API

由操作系统内核提供的服务原语搭建起来的服务原语,是不可打断的系统调用的时间尽量小、尽量是常量和可确定。7验证性FAA美国联邦航空局FDA美国食品和药物管理局8实时性

使tc(contextswich)和ts(systemcall)尽可能小、尽可能是常量和可确定可确定tc和ts有一个上限不会出现峰值不会随系统任务的增多而增多9Components

基本模块

领域扩展模块(领域解决方案)

10基本模块WDBAgent:两种工作模式(中断或查询),支持系统级和任务级调试Shell: Loader:支持动态地下载或卸载模块WindView支持模块:支持利用WindView动态调试目标程序CodeTest支持模块:支持利用CodeTest测试系统的代码覆盖率和内存使用情况SENS:是VxWorks的可裁减的增强型网络协议栈(ScalableEnhancedNetworkStack)。它除了提供TCP/IP协议栈,还支持其他协议。最大的特点就是采用零拷贝机制,即打包/解包是通过指针的方式11网络扩展模块:提供了丰富的网络协议(BSD4.3,TCPV4,UDPetc.),路由协议(OSPF,RIPetc.)和网络应用(ping,SNMP,DHCPserver/client,DNS,telnetserver,FTPserver,NFSserver/client,TFTPserver/client)等文件系统:支持五种文件格式:MS-DOS、RAW、NFS、CD-ROM、RT11卷标格式(为了实现后向兼容)对存储介质不做假设,可以是电的(如PCMCIA的ATA)、磁的ANSIC模块:解决了以下问题:库集成、库不可重入、版本兼容及移植性,该库中的函数大致可分为4类:字符处理功能、字符串处理功能、通用功能、I/O处理功能12POSIX:VxDCom:VxMP:VxTrueFFS:VxVMI:

13领域扩展模块(领域解决方案)

Telecom&Datacom:TMS(TornadoforManagedSwitches):交换机管理解决方案

(1)企业网:管理hub、switch、router; (2)Carrier网:边缘交换机,VoIP网关,核心路由器;(3)消费类网络:CabelModem,xDSLModem,网关,家用网络设备14ConsumerElec:TIA(TornadoforInternetAppliance)Set_topBox:卫星、Cable、Web、PDADigitalCameraEmbeddedBrowser15BSP-BoardSupportPackage

由两部分组成初始化、驱动程序初始化从系统上电复位开始直到windkernel和usrRoot根任务启动的这段时间,系统的执行过程驱动程序:一些包含I/O操作的子函数

16初始化包括:CPUInitCPUInit初始化CPU的内部寄存器。BoardInitBoardInit初始化智能I/O的寄存器,将device打通SystemInitSystemInit为系统的运行准备数据结构,进行数据初始化。

17驱动程序不能自动执行,只能被动调用三种方式任务直接调用任务调用SystemCall任务调用服务

1819对内存使用采用FlatMode

静态分配的IMAGE占用空间(.code、.data、.bss)、系统的动态空间(windkernel创建的REGION#0)、用户的动态空间。2021VxWorks可被静态或动态链接VxWorks在开发阶段可动态地下载目标文件,并与操作系统及其它目标文件动态链接。链接以后是浮动的,只在装载时才与绝对物理地址相对应VxWorks成品阶段是采用静态链接的。

22成品时的IMAGE和调试时的IMAGE

成品时的IMAGE有两种运行模式:ROM-residentimage:BSP初始化时把image中的data段复制到RAM中,code在ROM中运行ROM-basedimage:BSP初始化时把image完全搬到RAM中执行,包括image中的data段和bss段。(分压缩和非压缩两种类型)23ROM-resident24ROM-based25调试时的Image

先由引导代码把ROMBootProgram搬到RAM中,BootProgram初始化调试下载通道和调试信息输出通道被调试的IMAGE通过Host与Target之间的某种耦合方式download到Target的RAM中,然后接受控制权,实现调试

2627任务三种状态

ReadyDelayedPended状态之间的转换:事件驱动RE:不同优先级抢占,同一优先级时间片轮转ER:被其他任务抢占或时间片耗尽EB:所需资源没有满足BR:所需资源得到满足

28pendedreadydelayedsuspended任务初始化就绪队列延时队列悬挂队列等待队列29RTOS任务调度的算法

Pre_empty:不同优先级的任务采用抢占方式

High

PriorityTaskAMediumPriorityTaskBLowPriorityTaskCEventEvent30Timeslice:相同优先级的任务采用时间片轮转方式(KernelTimeSlice(ticks))

ABCDABCD时间片31VxWorks的任务调度算法VxWorks的每个任务可以规定自己的priority;mode:可否设断点、是否支持浮点操作。32任务之间的关系

1.通信:松耦合:实现机制:一个消息队列紧耦合:实现机制:两个消息队列任务之间的通信也可以用信号量来构造。2.控制:数据保护:信号量或互斥量同步:信号量,信号或消息队列33VxWorks是支持面向对象的操作系统1.

VxWorks的对象:Task、MessageQueue、Semophore、Timer、Pipe、FileDescriptor.2.

对象的属性: 生存性:对象可以被创建或删除在生存期间,可被标识和管理:Name、ID、ControlBlock平等性:对象之间不象Unix中的父子进程间那样存在继承关系3.对象的服务:系统使用系统服务对对象进行操作34Debug

35硬件:非在线问题(工艺)在线问题(设计问题):上电以后不能正常运行BSP:VxWorks和ComponentsApp语句逻辑层:程序语句的逻辑是否正确功能层:设计的功能是否可以实现任务层:任务的划分、调度是否合理系统层:系统的可靠性、效率36调试的手段及工具

纯硬的手段万用表、示波器、逻辑分析仪,针对非在线的硬件问题和部分的在线硬件问题半硬半软的手段ICE、BDM,针对部分硬件的在线问题和BSP的调试纯软的手段CrossDebugger,针对App的调试37ICE的方法运行的IMAGE在仿真器中,由仿真器的CPU在用户的硬件环境下运行来调试软件。限制:价格/使用率的比率太高,CPUdependence

38BDM的方法在运行IMAGE的CPU上支持一种断点逻辑硬件调试代理宿主机通过并口连接的Adapter连接到CPU的BDM接口上,进行软件的调试。限制:CPU必须支持BDM方式。步骤:BDMDebugger下载Registerlist激活板子,BDMDebuggerIMAGE下载到目标板的RAM中。3940软件调试宿主机与目标机通过某种方式耦合,宿主机上的调试器通过目标机上的调试代理来进行软件的调试优点是性价比高41CrossDebugger(Crosswind)

照相机(静态调试)在某一个时间点捕捉到CPU的寄存器、内存、应用程序的任务、队列、信号量等,可以调试App下面的2.5层

摄象机(动态调试)WindView、SystemBrowser,可以看到程序在动态运行时发生的情况,如任务的切换轨迹等;CodeTest可测试系统的代码覆盖率以及内存的动态分配和释放情况ScopeTools可分析系统内某个变量随时间的变化曲线,每个函数或任务占用CPU的时间,以及内存的使用情况。42WindView按功能分trace:用于发现偶然bug,即与历史状态相关的bugprofile:利用直方图、百分率进行统计分析。举例:通过直方图统计任务对CPU的占用时间,进行分析一个事后分析的工具,记录一个Recorder,以file的形式存在宿主机上,然后对其进行分析。这个Recorder具有三个特点:singlebuffer、transmit、wraproundVxWorks采用wrapround方式,总是记录最后一段时间的系统运行情况,在记录开始前应该设置de-trigger的events选项,以免在通信还未中断的情况下已经死机,目标机就会把死机的标志不断地送回宿主机,而会把死机前记录的情况覆盖掉43SystemBrowser是一个定时采样、事后分析的工具,采样的对象可以是堆栈、队列、堆栈等

44Tornado

WIN95/NT环境下的第二代IDE,是基于软总线的开放环境,是一种层次结构:Manager、ProjectTools、InternalBUS、symbolserver&communicateserver。4546ToolsSet

CrossCompiler:GNUforallarchitectureDiabDataforPPC,68k,Mips,ARMetc.CrossDebugger:照相机:CrossWind摄象机:WindView,SystemBrowser,CodeTest,ScopeToolsProjectFacility:VxWorks的自动配置工具Simulator:Integratedsimulator,fullsimulator47Vxworks/嵌入式Linux共同特性多任务,多进程的操作系统。具备软实时特性,标准的linux内核不具备实时特性,需另加实时调度器,构成真正的实时操作系统。48EmbeddedLinux的优点系统开发成本低,投资效益高,源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论