完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
作者:王丽杰
在传统的嵌入式实时操作系统中,内核和应用都运行在同一特权级,应用程序可以无限制的访问整个系统地址空间。因此在某些情况下,应用的潜在危险动作会影响其他应用和内核的正常运行,甚至导致系统崩溃或者误操作。 为了满足航空电子对高可靠性、高可用性以及高服务性的要求, 1997年1月ARINC发布了ARINC653(航空电子应用软件标准接口),并于2003年7月发布ARINC653 Supplement 1,对区间管理、区间通信及健康监测部分进行了补充说明,用以规范航空电子设备和系统的开发。 随即,国外各大嵌入式开发商相继推出此类支持ARINC653,具有内核和应用保护机制的操作系统。但在国内的嵌入式领域,这样的研究还有一定差距。基于此,本文提出了一种航空电子嵌入式实时操作系统(A-RTOS,Avionics RTOS)的一种设计思路,并在具有MMU和支持高级保护模式的目标板上完成了实现。 |
|
相关推荐
4个回答
|
|
航空电子标准ARINC653
ARINC653主要阐述了模块化综合航空电子设备IMA(Integrated Modular Avionics)使用的应用软件的基线操作环境。它定义了航空应用与下层操作环境之间的接口和数据交换的模式以及服务的行为,并描述了嵌入式航空电子软件的运行时环境。 ARINC653 Supplement 1对ARINC653的补充主要包括以下几点:在系统结构上,提出了System Partition的概念,明确区间上的应用调度应该是区间级别的,这些应用共享区间资源;区间管理方面,阐述区间调度中主时间框架的定义原则,并补充了区间模式的变迁过程;对区间间通信的原则进行更为详尽的说明;增加关于健康监测的错误级别和错误处理的解释。 |
|
|
|
软件构成
航空电子中的核心模块软件包括两类:应用软件和核心软件。位于应用软件和操作系统OS之间的APEX(APplication EXecutive)接口,定义了系统为应用软件提供的一个功能集合。利用这个功能集合,应用软件可以控制系统的调度,通信和内部状态信息。APEX接口相当于为应用提供的一种高层语言。而对于OS来说,是关于参数和入口机制的定义。 图1给出了ARINC653中各部分之间的关系。 |
|
|
|
分区和区间管理
分区(Partitioning)是ARINC653中一个核心概念。在IMA(Integrated Modular Avionics)系统中,一个核心模块会包含一个或多个航空电子应用,并且这些应用要能够独立运行。分区就是航空电子应用中的一个功能划分。分区的单位称为区间,区间内的每一个执行单元称为进程。每一个区间具有自己独立的数据、上下文和运行环境,这样做的好处是能够防止一个区间的错误影响到其他区间。另外,它能使得整个系统容易验证、确认和认证。 区间化以及区间的管理和调度是由OS来实现的。ARINC653为区间的调度规定了一种基于时间窗的循环调度算法。这种调度算法的原理如图2所示。 为了完成各区间的周期性调度,由OS维护一个固定时间长度的主时间框架,该时间框架在模块的运行期内周期性的重复。每个时间框架可以划分为若干个时间窗口。系统利用一个事先确定的配置表,在规定的时间窗口内激活对应区间的运行。这样就能够保证每个应用在分配给它的时间周期内访问公共资源不被打断。 ARINC supplement 1对主时间框架的时间定义原则进行了补充。它规定主时间框架的大小应该是核心模块中所有区间周期的最小公倍数的正整数倍,并应考虑到每个区间每次执行的时间长度和执行频率。 在ARINC653 Supplement 1发布时又增加了系统区间属性和启动条件属性。区间的工作模式包括空闲,冷启动,热启动和正常四种,如图3所示。每个区间所需资源在系统构建时指定,在区间初始化完成时区间对象创建。OS在进入运行模式时启动应用区间,然后区间进入正常运行模式。监测管理功能在响应致命错误时将重启区间或者停止区间的运行。 |
|
|
|
A-RTOS系统设计与实现
A-RTOS的系统结构如图4所示。在此系统中,各个应用工作在所属区间的环境中,并且应用和内核及各个应用之间都被保护墙隔离,无法相互破坏,从而保证了核心模块的可靠性。 隔离和保护机制 隔离和保护是ARINC653首要强调的特性,也是必须解决的重点之一。A-RTOS主要采用两种方式来实现应用与内核以及应用之间的隔离和保护。 第一种方式是使用内存管理单元MMU。通过MMU能够实现逻辑地址到物理地址的转化,并且对访问权限进行控制。这样可以保护操作系统内核不受应用软件有意或无意的破坏,也有效的防止了各应用软件之间的相互破坏。图5给出了MMU的页目录/页表方式的地址转换流程。 第二种方式就是系统调用。A-RTOS为了实现对内核及应用之间的保护,提供了两种运行形态:用户态和系统态。其中操作系统内核是运行在系统态的。因此用户态的应用是不能够直接调用系统内核提供的功能接口的,必须通过TRAP系统调用方式来进行。 此种方式下,当用户态的应用需要调用内核提供的系统调用时,首先要执行一组特殊的指令使系统进入系统态以便执行需要的系统调用,当调用完成后,内核将执行另一组特征指令将系统返回到用户态。 每种支持保护模式的系统都提供了专门的软中断命令来完成从用户态进入系统态的功能。系统挂接一个软中断处理函数,所有的系统调用都通过这个软中断进入并以不同的参数值(即系统调用号)来加以区分。 系统调用的另一种形式是称为CALL-LIB的调用库机制。此种机制类似于windows系统的动态链接库,可以满足动态加载和更新组件的需要,也是A-RTOS的特点之一。 |
|
|
|
只有小组成员才能发言,加入小组>>
702 浏览 0 评论
1111 浏览 1 评论
2476 浏览 5 评论
2811 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2654 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
658浏览 9评论
666浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
788浏览 6评论
633浏览 5评论
677浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:19 , Processed in 1.222944 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号