1 VxWork2概述和Vxworks特点
最优秀的特点:可靠性和实时性。占有率排名第一。
应用领域:通信,军事,航空,航天。
向后兼容,兼容5.X
存储保护技术
基于标准流程的编程模式
可根据客户需求定制的应用程序接口(API)
错误探测与报告机制
可扩展的消息传递架构
双模式Ipv6/Ipv4网络栈
可支持非VxWorks应用
提高了对开放式标准的支持
支持处理器多
对MMU、CACHE和大物理地址的抽象化
6.7以后的版本支持多核,降低功率消耗和强化4G网络能力
2 VxWork映像(IMAGE)
VxWork映像的三部分组成:BSS段,代码段,数据段。
两大类:BootRom类型映像和VxWorks类型映像。
BootRom类型映像:功能类似于PC机的BIOS,最小化、专用的VxWorks引导映像,实现最少的系统初始化。
VxWork映像:系统的主映像,是系统最终要运行的映像。该映像在运行时至少有一部分(如:数据段和BSS段)需要在RAM中运行。在系统中其对应的编译规则文件是rules.vxWorks。
3 VxWorks型vs BootROM型映像
对于没有自启动功能的VxWorks类型映像(如 VxWorks型),映像运行前需一段程序将该映 像拷贝到RAM中运行。
BootRom类型映像完成VxWorks系统下载, 完毕后BootRom的任务就结束了。
二者在系统初始化的时候,所做的功能基本相同。
VxWorks成品阶段是采用静态链接的。
4 内核wind kernel
内核不处理外设,对外设不做假设,板级支持包BSP管理外设
VxWorks:标准的单CPU版本。具有可裁减性:由一个体积很小的内核及一些可以根据需要进行定 制的系统模块组成,图形显示、文件系统以及一些设备驱动均可被裁减。
5 VxWorks实时性
系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用 程序精练而有效,造成的延迟很短。采用优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制。
6 VxWorks的任务调度算法
每个任务可以规定自己的信息,采用优先级抢占,相同优先级采用轮转调度机制。任务之间的通信也可以用信号量来构造,数据保护机制有信号量或互斥量。
7 VxWorks中断处理
中断服务程序(ISR)运行在特定的空间,不同于一般的任务,中断服务程序没任务上下文。所有的中断服务程序使用同一中断专用堆栈。
8 中断服务程序
处理来自硬件的中断,是设备驱动程序的重要组成部分。应尽量的小,只把最必要的任务放在中断服务程序里面执行。
9 统一的API
由操作系统内核提供的服务原语搭建起来的。
服务原语,是不可打断的。
系统调用的时间尽量小、尽量是常量和可确定。
6.x支持处理器抽象层(PAL)
PAL为每个体系结构系列定义了功能接口,并且在 一定程度上抽象了操作系统对硬件特性的功能性需求。
增强了支持类似硬件体系结构系列的能力。
对于应用程序用户是透明的。
体系结构系列PAL,加速了对该系列处理器变种的支持,并缩短产品上市时间。
10 VxWorks的内存管理
内存分配采用first-fit(第一次适配)算法。内存释放采用上下空闲区融合算法。
内存管理模块由内存分配和内存保护两个相互独立的子模块。
内存碎片中编程尽量使用静态内存分配,VxWorks没有清除碎片的功能所以只能避免碎片。为了防止任务挂起,中断服务程序里面不要使用malloc,内存搜索有时问开销,所以有严格时限的任务也不能使用。
VxWorks的驱动程度调用的三种方式:任务直接调用,任务调用System Call,任务调用服务。驱动程序不能自动执行,只能被动调用。
11 Vxworks启动过程:可加载型启动方式和基于ROM型启动方式。
12 Vxworks的特点
基于进程的标准编程模式,IPv4/IPv6双网络协议栈,支持面向对象。
13 Vxworks调试的手段及工具
纯硬的手段:万用表、示波器、逻辑分析仪,针对非在线的硬件问题和部分的在线硬件问题。
半硬半软的手段:ICE、BDM,针对部分硬件的在线问题和BSP 的调试。
纯软的手段:Cross Debugger,针对App的调试。
ICE的调试方法:运行的IMAGE在仿真器中,由仿真器的CPU在用户的硬件环境下运行来调试软件。
ICE的调试方法的限制:价格/使用率的比率太高,CPU也有限制。
BDM的方法:宿主机通过并口连接的Adapter连接到CPU的BDM接口上,进行软件的调试。但是CPU必须支持BDM方式。在运行IMAGE的CPU上支持一种断点逻辑。
软件调试:宿主机与目标机通过某种方式耦合,宿主机上 的调试器通过目标机上的调试代理来进行软件的调试。它性价比高。