- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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分区操作系统在核心操作系统分配给该分区的时间内调度vThreads中的线程。
vThreads不直接与设备交互,而是通过核心操作系统的系统调用。
APEX 层
构建在vThreads之上,遵循ARINC653规范,并且提供相应功能和API。
POSIX层
构建在vThreads之上,遵循用于实时扩展的POSIX标准(1003.1b)。
装载和启动
当目标板加电时,按照下面的步骤进行装载和启动
初始的启动码装载核心操作系统,分区操作系统,共享库,以及应用
核心操作系统初始化自身,启动它自己的子系统
核心操作系统创建分区
核心操作系统启动分区调度器,并且让应用初始化自身
核心操作系统可以在初始化完成之后下载在线装载的应用程序到分区。应用可以在分区运行之时装载到分区。
运行时模型
核心操作系统处理来自每个分区的系统调用,并且在运行系统调用前校验每个系统调用的语句。使用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;
L
文档评论(0)