1 / 41
文档名称:

vxworks653编程手册.docx

格式:docx   大小:2,118KB   页数:41页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

vxworks653编程手册.docx

上传人:916581885 2021/4/17 文件大小:2.07 MB

下载得到文件列表

vxworks653编程手册.docx

相关文档

文档介绍

文档介绍:vxworks653编程手册
VxWorks653运行时系统
运行时层
一个vxworks653模块由下面四层组成:
■ core OS—必需
■ partition—至少需要一个 (vThreads 或 COIL-based),每个都在一个分区的操作系统之中
■ APEX shared library—ARINC 653 应用所需
■ POSIX shared library—POSIX 应用所需
Core OS层
核心操作系统提供服务给分区。
缺省的,核心操作系统使用ARINC653规范中的时间抢占的调度(TPS)来调度分区。Vxworks653的核心操作系统还可以采用APPS调度策略在TPS调度的空闲时间内调度优先级抢占调度(PPS)使能的分区。
核心操作系统提供给每个VThreads分区操作系统的服务包括:
分区系统资源
调度分区
代表分区的操作系统执行trap异常
定义和强制分区边界
装载分区
使用端口和通道在分区间传递消息
处理I/O
代表应用完成系统调用
支持分区的调试
核心操作系统初始化自身,启动它自己的子系统
核心操作系统创建分区
核心操作系统启动分区调度器,并且让应用初始化自身
核心操作系统可以在初始化完成之后下载在线装载的应用程序到分区。应用可以在分区运行之时装载到分区。
运行时模型
核心操作系统处理来自每个分区的系统调用,并且在运行系统调用前校验每个系统调用的语句。使用vThreads分区操作系统的应用拥有完全的vThreads任务间通信机制。
APEX库提供了遵循ARINC653规范的分区管理,进程管理以及时间管理;为分区间通信提供了消息,通道,端口;为分区内通信提供缓冲区,黑板,信号量以及事件。
端口映射允许在VxWorks653模块之外通信。
开发APEX应用
APEX是位于应用程序和支持ARINC653规范的操作系统之间的API。对于VxWorks653,操作系统是vThreads分区操作系统和核心操作系统。APEX给vThreads分区提供了时间、进程管理以及管理周期性和非周期性进程的能力。
APEX提供如下服务:
管理分区
管理进程
管理时间
与其他分区通信(使用消息,端口和通道)
分区内的通信(使用缓冲区,黑板,信号量以及事件)
监控健康
分区管理
分区的管理包含分配分区内存以及依据ARINC653规范初始化分区。
分配分区内存
每个分区的资源分配都定义在基于XML的配置和编译过程中,根据指定在该规范中的分区需求,为每个分区分配唯一的物理内存。通过禁止对超过该分区的内存区域的写访问来确保内存分区。
初始化分区:冷和热启动
冷启动:当VxWorks653模块加电并且创建分区时,使用冷启动分区操作模式。在冷启动模式下,分区对象被分配并且初始化。
热启动:热启动分区操作模式导致一个分区重新初始化或者由于遇到错误重新启动。在热启动模式下,持久数据不会重新初始化,分区代码也不会重新装载。
每个分区所使用的资源(如通道、进程、队列、信号量或事件等)在系统编译时指定。在分区的初始化阶段,创建分区所需的资源,然后分区进入NORMAL模式。
分区属性
分区属性定义在XML配置文件中。
固定的分区属性包括:
标识符:定义在VxWorks653模块上唯一的分区标识符。
内存需求:分配给分区的物理内存
周期:分区的激活周期。用来确定核心操作系统的整个时间帧内的分区激活的运行时位置。
持续时间:分区的每个周期内核心操作系统给予的处理器时间。
关键级别:分区的RTCA/DO-178B认证级别。
通信需求:分区与其他分区通信的通信通道
分区健康监控表(健康监控配置):健康监控器对于故障的动作指令。
获得分区状态
GET_PARTITION_STATUS函数可以获得当前情况下的分区状态。
type PARTITION_STATUS_TYPE is record
IDENTIFIER :
PARTITION_ID_TYPE;
PERIOD : SYSTEM_TIME_TYPE;
DURATION : SYSTEM_TIME_TYPE;
LOCK_LEVEL : LOCK_LEVEL_TYPE;
OPERATING_MODE : OPERATING_MODE_TYPE;
START_CONDITION : START_CONDITION_T