APP下载

基于Harmony系统工程的IMA应用开发

2015-03-19徐文熊智勇张国全

北京航空航天大学学报 2015年11期
关键词:开发人员镜像端口

徐文,熊智勇,张国全

(航空电子系统综合技术重点实验室,上海 200233)

随着航空电子技术的发展,在军用和民用领域,越来越多的先进机型采用综合模块化航空电子(IMA)系统体系架构,如 F-22、A380 等[1].相比传统的联合式架构,IMA系统提供一个统一的硬件平台,飞机的功能由各个应用实现,每个应用宿主在各自的分区当中,相互独立,互不干扰,提高了资源利用率,从而极大地减少了飞机的质量和开发成本[2].Arinc 653规范定义了一种应用与IMA模块操作系统的接口[3],称为 Application/Execution(APEX)接口,应用基于该接口规范进行开发,通过该接口实现与IMA模块操作系统的数据通信,应用开发人员不需要考虑平台本身,从而缩短了应用开发周期.美国风河公司开发的嵌入式实时操作系统VxWorks653满足Arinc653规范,并提供了相应的集成开发环境Workbench.

传统的基于文档的开发方法将软件的设计建立在对纯文字需求的理解上,用户只有在软件开发的后期,通过系统测试阶段的工作才能真正了解软件的功能和性能是否满足要求,这将导致修正设计错误或更改设计所需的开销随着工程阶段的深入而成倍地增加.基于模型的开发方法是一种新的软件开发方法[4],可以对软件进行快速的设计、开发、验证和确认,提高软件开发效率[5].通过对软件进行建模,将文字需求可视化,让开发人员和用户对所要开发的软件这个“未来世界”达成共识[6],建模过程也是软件的设计过程,可以边设计边测试,当模型得到确认之后就可以进行软件的实现.IBM公司基于 Rhapsody提出了Rational Harmony系统工程(SE)方法,先在Rhapsody中使用Harmony框架建立IMA应用的软件模型,再基于此模型使用Workbench进行具体的软件开发.

1 Harmony系统工程建模

Harmony系统工程方法将系统设计分为3个阶段,需求分析阶段、系统功能分析阶段以及设计综合阶段[7].建模的目的是让软件开发人员对软件需求有更准确的理解,Harmony系统工程中边设计边测试的方法可以快速和清晰地让一些潜在的设计问题暴露出来,以实现真正满足需求的软件设计.

本文结合某预研项目中的无人机控制管理(UAVM)系统介绍了使用Harmony方法的系统建模的实践过程,软件开发人员拿到软件需求文档,按照以下步骤进行建模:①根据需求分析结果构建系统用例图;②针对每个用例,构建系统活动图;③对于每个活动图,生成时序图和内部块图;④构建系统状态图;⑤运行并验证模型.

1.1 系统用例图的构建

系统用例图是对软件需求的提炼,将需求所要实现的功能进行分组形成用例.UAVM的用例图如图1所示.

图1 UAVM系统用例图Fig.1 UAVM system use case diagram

UAVM为IMA模块中的一个分区应用,由无人机控制权交接管理(ConnectionManage)、无人机传感器控制(SensorControl)、无人机飞行计划管理(FlightPlanManage)、无人机载机信息处理(RUVInformationProcess)、健康监控管理(Health-Monitor)5个子功能模块组成,与指挥中心(OC)、地面站(GCS)、目标数据处理(TDP)、无人机(RUV)、显示处理单元(DPU)、状态监控(HUM)这些外围设备进行信息交互.

1.2 系统活动图的构建

每个用例都有各自的活动图,它描述的是典型的工作流程,某种意义上就是软件流程图,本文以第1个用例控制权管理为例,如图2所示.

图2 无人机控制权交接管理活动图Fig.2 UAV control right transfer manage activity view

构建活动图时应该关注其与外部系统间的信息交互,控制权管理模块依次接受来自OC的演示场景编号指令、演示开始控制指令、组网指令、控制权交接指令,根据控制权交接指令确认交接对象,判断是获取无人机控制权还是交出无人机控制权,如果是获取,同时发送控制权移交状态报告给OC和 GCS,发送与无人机的连接状态给DPU,反之等待GCS发送控制权移交状态报告,发送与无人机的连接状态给DPU.

1.3 系统时序图的生成

系统时序图描述的是系统与外部设备的交互的先后顺序,时序图可以根据构建的活动图自动生成,需要注意的是,时序图应遍历活动图中的每一个活动.用例控制权管理的时序图如图3所示.

1.4 系统内部块图的生成

内部块图反映的是该系统与外部设备之间通过端口连接表示的静态交联关系,也就是接口控制文档(ICD)的图形化体现,自动生成的内部块图如图4所示.

内部块图可以清晰地反映用例与哪些外部系统有信息交互,以及信息交互的内容,以与OC的端口为例,可以看到有4条输入的信息流和1条输出的信息流.

图3 时序图Fig.3 Sequence diagram

1.5 系统状态图的构建与执行

状态图描述的是用例在不同场景下基于状态的行为,根据活动图和时序图可以生成初始状态图,初始状态图主要反映信息的输入和输出,通过执行状态图,开发人员即可验证所设计的功能是否和需求一致,用例无人机控制管理的状态图的执行如图5所示.

图5 系统状态图Fig.5 System state diagram

2 IMA系统开发角色

IMA系统主要由两大构件组成:一是应用,二是IMA模块[8].Arinc 653规范中给出了一种IMA模块结构,主要由以下几个层次组成(如图6所示):硬件层、操作系统层(RTOS)、Arinc 653应用程序接口层(APEX)、应用层[9].

图6 IMA模块结构Fig.6 IMA module architecture

硬件层提供各种外围设备接口,如AFDX、Arinc 429、CAN、离散量 I/O、模拟量 I/O 等,包含处理器、硬件时钟、MMU、内存等.操作系统层管理各个分区和分区的通信,对分区来说,操作系统管理一个分区的进程.操作系统与硬件接口层相互作用,可以实现通信、调度、内存管理、定时和健康监控.Arinc 653应用程序接口层为航空电子应用软件提供服务,可以实现应用之间的通信,VxWorks 653中由分区操作系统完成该项功能.应用软件层由各个分区组成,每个应用可以宿主一个或多个分区,执行应用程序,实现飞机功能.配置表可供操作系统和硬件接口系统用于配置内存访问、调度和通信等.

配置和构建一个IMA系统是一个复杂的过程,根据IMA系统架构,通常分为3种开发角色,分别是平台开发人员、应用开发人员和系统综合人员,3种角色互相协同,就系统需求和设计约束等进行协商.

平台开发人员负责IMA平台的开发,根据模块核心操作系统、分区操作系统和共享库的设计需求,向其他开发人员提供核心操作系统配置文件、共享库配置文件以及相关的镜像文件.应用开发人员负责IMA分区应用的开发,根据应用的设计需求,为其他开发人员提供应用配置文件及应用的镜像文件.系统综合人员负责将平台和应用进行综合从而形成一个完整的IMA系统,形式上表现为对系统配置表的开发,编译生成IMA模块的配置记录和最终的系统镜像文件,加载到IMA模块当中.

3 IMA应用开发

虽然定义了3种开发角色,每个角色都有各自的分工,但是对于IMA应用开发人员来说,其他两种角色的工作在其开发应用的过程中也是有所涉及的.对于VxWorks 653来说,IMA模块的构建过程分为8个部分,分别是模块操作系统的构建、认证环境代理的构建、分区操作系统的构建、共享库的构建、共享数据的构建、用户配置记录的构建、应用的构建和综合的构建,每个构建过程都是独立的[10],这8个构建过程并不都是必须的,结合某预研项目的例子,只涉及到了模块操作系统的构建、分区操作系统的构建、应用的构建和综合的构建,而这4个构建过程对任何一个IMA系统来说都是必须的.

3.1 模块操作系统的构建

平台开发人员已经提供了模块操作系统的配置文件bsp.xml,应用开发人员在这个过程只需要通过该配置表生成一个镜像文件即可,因此只需要编写一个 Makefile文件即可[11],主要内容如下:

该Makefile用来创建一个核心操作系统项目并最终编译链接生成核心操心系统镜像文件coreOS.sm.

VxWorks 653支持2种模式下3种镜像文件的加载,2种模式包括调试模式和认证模式,3种镜像包括网络可加载镜像、RAM驻留系统镜像以及ROM驻留系统镜像,这里通过shell编译生成的是调试模式下的网络可加载系统镜像.

3.2 分区操作系统的构建

分区操作系统包含在VxWorks 653中的系统共享库里面,非系统共享库指的是开发人员自己定义的一些可以被其他分区共享的代码,分区操作系统可以看成是分区应用与核心操作系统之间的一层中间件,Arinc 653所规定的API服务调用就是通过分区操作系统来实现的.分区操作系统某种程度也可以理解为VxWorks 5.5,因为它对VxWorks 5.5的API函数调用也是完全支持的,只不过使用VxWorks 5.5 API函数开发出来的应用,称之为vThreads应用,不可以移植到其他平台上;而用Arinc 653 API函数开发出来的应用,称之为APEX应用,可以移植到任何满足Arinc 653标准的平台之上.

在分区操作系统的构建过程中,应用开发人员需要提供3个文件,即两个配置表和一个Makefile文件,两个配置表分别是共享库描述文档 uavm-pos.xml和共享库 API文档 pos-api.xml.

3.2.1 分区操作系统配置表的开发

共享库描述文档定义共享库是否为系统共享库(即分区操作系统),共享库虚拟地址以及共享库需要占用的内存大小[12],主要内容如下:

注意分区操作系统的虚拟地址VirtualAddress属性值要和模块配置表bsp.xml中的保持一致.

共享库API文档定义了该分区操作系统可以提供哪些API函数供应用调用,应用开发人员可以自定义这些API函数,主要内容如下:

导入的 vthreads.xml和 apex.xml配置表定义了具体的API函数,其中前者包括核心操作系统本身的系统调用函数,后者涵盖了Arinc 653中所定义的服务程序.

3.2.2 分区操作系统Makefile的开发

分区操作系统的Makefile用来编译生成分区操作系统镜像文件 pos.sm以及其插桩文件pos-stubs.o,后者作为应用编译的一个输入文件,用来明确告知应用可以调用哪些API服务,该Makefile主要内容如下:

其中,sslMain.o文件用来初始化分区操作系统,vThreadsComponent.o 文件提供 vthreads.xml的 API函数功能,ApexComponent.o文件提供apex.xml的 API函数功能,pos-ept.o 是分区操作系统进入表,pos.lds是相应的链接文件.

3.3 应用的构建

应用的构建是应用开发人员的最主要工作,IMA应用的开发,归根到底是源码的开发和调试.在应用的构建过程中,需要一个应用配置表文件、源代码文件以及一个Makefile文件,该配置表文件称为应用描述文档.

3.3.1 应用描述文档的开发

应用描述文档中定义了应用所需要的内存以及相应端口的配置,应用通过这些端口与外界进行通信,其主要内容如下:

Arinc 653标准中定义了两种类型的端口,队列端口(queuing port)和采样端口(sampling port):队列端口以消息队列的形式缓存多条消息,即下一条传输消息并不立刻覆盖当前消息,以“先进先出”的形式进行传输,当消息被读取后,该消息在队列中被清除;采样端口的特点是当前消息会被下一条传输消息所更新.

配置表中定义了端口的名称、类型、方向和大小,采样端口还定义了其采样率的值.队列源端口的Protocol属性定义了两种端口协议,分别为SENDER_BLOCK 和 RECEIVE_DISCARD,二者是VxWorks 653单独定义的,Arinc 653标准中并没有规定.当从一个源端口向多个目的端口发送消息时,如果使用SENDER_BLOCK协议,当有一个目的端口满栈了,则源端口停止向多有端口发送消息,如果使用RECEIVE_DISCARD协议,当有一个目的端口满栈了,则源端口停止向该目的端口发送消息,但并不影响向其他端口发送消息.

通信端口在分区初始化阶段生成,两种端口只能进行单方向通信.

3.3.2 源程序的开发

在之前Rhapsody建模的过程中,应用开发人员已经理清了程序的设计思路,可以参照活动图,也就是软件流程图设计程序,编写代码,所定义的函数功能块名应与活动图中定义的Action保持一致,便于对照查阅.

IMA应用一般由多个进程组成,进程在分区处于正常模式的时候运行,Arinc 653定义了每个分区有4种工作模式,分别是冷启动模式(COLD_START)、热启动模式(WARM_START)、空闲模式(IDLE)和正常模式(NORMAL),4种模式的转换关系如图7所示.

图7 分区工作模式转换Fig.7 Partition working modes transform

冷启动和热启动模式主要用于分区初始化阶段,包括创建通信端口和进程,其中冷启动模式是IMA模块从掉电状态上电来创建分区的过程,而热启动则是由于遇到分区异常而重启的状况,热启动过程中,一些数据和代码仍然保留,不像冷启动过程全部需要重新创建[13].当分区启动异常或者分区正常运行时发生错误需要中止分区时,分区则会进入空闲模式,该模式中分区不创建任何通信端口,不运行任何进程,但是操作系统仍然会为其保留时间窗.正常模式是指该分区可以正常运行,被操作系统调度,执行飞机功能.

生成队列端口和采样端口的服务分别是CREATE_QUEUING_PORT和CREATE_SAMPLING_PORT,通过队列端口发送和接受消息的服务分别为SEND_QUEUING_MESSAGE和RECEIVE_QUEUING_MESSAGE,通过采样端口发送和接受消息的服务分别为WRITE_SAMPING_MESSAGE和READ_SAMPING_MESSAGE,部分源码如下:

源码中的端口参数必须和应用描述文档中的保持一致,当改动一方,另外一方也必须改动.

应用开发人员可以通过调用服务GET_PARTITION_STATUS获取分区运行状态,调用服务SET_PARTITION_MODE设置分区工作模式,此外,VxWork653还额外增加了一个服务SET_SCHEDULE_MODE用来设置分区新的调度,比如是基于主时间框架的,当前分区时间窗的,还是下一个时钟单元.

IMA应用的执行,归根到底是进程的运行,分区相当于进程的容器.进程包括周期性进程和非周期性进程两种类型,周期性进程在分区中以固定的周期运行,而非周期性进程通常伴随着相应事件的触发.进程也有4种工作状态,分别是休眠、等待、准备和运行,其状态转移条件如图8所示.

图8 进程状态转移Fig.8 Process states transform

在分区处于冷/热启动模式时,调用CREATE_PROCESS服务创建进程,此时进程处于休眠状态,调用START服务来启动一个进程,此时进程一直处于等待状态,当分区进入正常模式后,注意此时非周期进程会立刻进入准备状态,如果被分配到CPU资源,会立刻运行,而周期性进程仍然是等待状态,只有在下一个分区调度周期时会进入准备状态.在创建进程之前要先定义好进程的属性,部分源码如下:

processTable中的进程参数依次为进程的名称、入口函数、堆栈、优先级、进程的周期、进程的持续时间、进程的实时性.

分区中进程的调度主要采取优先级抢占的方式,低优先级的进程可以被高优先级的进程抢占,相同优先级的进程按照“时间先后”的原则分配CPU资源,如图9所示.

图9 进程调度Fig.9 Process schedule

图中P2是周期性进程,P1、P3、HM(健康监控)是非周期性进程,优先级依次升高,周期2中,P2被P3抢占,导致P2未在截止时间内完成,会触发HM进程,在下一个周期中恢复P2进程并完成.当然,开发人员可以调用“抢占禁止”服务来锁住当前进程,使其不被其他高优先级的进程抢占,待其完成之后,再调用解锁服务.

周期性进程在程序最后调用PERIODIC_WAIT或TIMED_WAIT服务通知系统进程运行结束,释放CPU资源并等待下一次调度,非周期性进程调用STOP_SELF服务来结束进程释放CPU资源.

对于进程间的通信,操作系统提供了两种通信端口,称为“缓存”(buffer)和“黑板”(blackboard),缓存和黑板的功能分别类似于分区间通信的“队列端口”和“采样端口”,所不同的是通过二者之间的消息可以进行双向传输.与分区间通信服务类似,开发人员可以创建缓存和黑板,定义其相关属性,譬如身份标识、消息大小等,可以发送和接受消息,还可以获取当前端口的信息,譬如有多少进程正在等待访问该端口等.

对于进程间的同步,操作系统通过“信号量”(semaphore)和“事件”(event)实现.在VxWorks 653中采用计数信号量,其数值是一个非负整数,当多个进程需要访问同一资源时,开发人员可以调用服务创建信号量,定义信号量身份标识,指定信号量数值大小,进程以什么样的方式获取信号量(“先进先出”或“优先级抢占”).进程需要获取信号量才可以访问资源,此时信号量数值减一,其他进程则处于等待状态,进程完成之后则需要释放信号量,此时信号量数值增一.“事件”则是进程触发的某种条件,事件有两种状态,一种是“上(up)”,一种是“下(down)”.当事件处于up的状态时,所有等待该事件的进程会进入准备状态,开发人员在创建事件时初始状态为down.

VxWorks 653的默认主函数名为usrAppInit(),无人机控制管理应用主函数源码如下:

portC()用来创建分区间通信端口,createP()创建应用的进程,START函数启动第一个进程,SET_PARTITION_MODE函数设置分区进入正常模式,进程开始运行.

3.3.3 应用Makefile文件的开发

应用的Makefile文件主要内容如下:

应用的镜像 uavm.sm依赖于 vxMain.o、uavm.o、uavm.lds、pos-stubs.o 文件,其中 vxMain.o用于应用初始化,pos-stubs.o文件是应用于分区操作系统的接口,分区地址变量PARTADDR要与bsp.xml保持一致.

3.4 综合的构建

综合的构建主要是生成IMA模块系统配置记录文件configRecord.reloc,组合核心操作系统、分区操作系统、应用的系统镜像文件,将它们加载到IMA平台中运行.该过程的主要工作是模块配置表的开发、分区描述配置表的开发以及需要一个Makefile文件,应用开发人员开发的模块配置表与最终的系统开发人员开发的配置表内容是不一样的,应用开发人员做综合的目的是为了验证自己应用的功能是否正确,而系统开发人员需要验证所有分区上应用的功能.

3.4.1 模块配置表的开发

模块配置表中导入了之前核心操作系统配置表、分区操作系统描述文档、应用描述文档的信息,定义了分区的调度周期和持续时间、分区间通信通道、健康监控、需要加载的镜像文件等信息,部分内容如下:

Schedule元素中各个分区的duration之和就是主时间框架[14],Connections元素为各个分区之间架起通信的“桥梁”,Payload元素中列出了需要加载的镜像.

3.4.2 分区描述文档的开发

每个分区都有各自的配置表,称为分区描述文档,以分区uavm为例,其主要内容如下:

Application元素指定了该分区所宿主的应用,SharedLibraryRegion元素指定了该分区调用的共享库为分区操作系统,RequiredMemorySize元素定义了分区所需要的内存大小.

3.4.3 综合Makefile文件的开发

综合过程中的Makefile文件用来将之前生成的模块的各个镜像组合在一起,本身也编译生成一个配置记录文件,主要内容如下:

其中Makefile.rules文件编译生成镜像加载列表文件 boot.txt、配置记录表 configRecord.xml以及配置记录镜像configRecord.reloc文件,net表示编译生成的是一个网络可加载镜像,如果换成ram和rom则分别表示生成的是RAM驻留系统镜像和ROM驻留的系统镜像,checkSize检查系统的镜像的大小是否超出预限值.

4 IMA应用测试

IMA应用的测试主要是功能和接口的测试,需要提供一个仿真的硬件平台来运行应用,同时需要一些测试桩为被测应用提供相关仿真数据,譬如来自其他应用的数据,来自外部设备的数据.这就需要建立另一分区,编写测试应用,仿真所需要的外部激励和响应[15].

4.1 测试应用的开发

建立另一分区,开发测试应用uavmTest,仿真外围设备OC、GCS、RUV、DPU发送和接收数据,通过观察数据内容正确与否,判断UAVM与外界通信是否正常,如图10所示.

图10 应用测试框图Fig.10 Application testing framework

测试应用与被测应用共享模块操系统和分区操作系统,其应用描述文档中的端口与被测应用的端口一一对应.针对用例图中的第1个用例,对于无人机控制权交接管理模块,在测试应用中实现以下功能:依次仿真发送来自OC的演示场景编号、演示开始控制、组网指令、控制权交接指令,仿真接收UAVM发送给OC和GCS的控制权移交状态报告,仿真接收UAVM发送给DPU的与无人机连接状态,仿真发送来自GCS的控制权移交状态报告.

4.2 应用的加载

应用的镜像需要连同核心操作系统镜像、分区操作系统镜像以及配置记录一起加载到IMA平台当中,也可以使用Workbench自带的VxSim仿真器,后者需要修改相对应的虚拟地址.将镜像加载到目标机中,部分运行结果如图11所示.

IMA应用开发使用交叉式开发环境,在应用开发阶段,为了便于调试,通常使用打印输出的方式来直观的显示程序的运行结果,在最终的程序代码中需要将其注释.图 11中,“Process1~Process8”语句代表应用创建进程成功,“Waiting for”语句代表应用等待外界相应事件,“Testing……”语句代表测试分区的应用在此刻发送相应仿真信息.

图11 程序运行结果Fig.11 Application running result

5 结论

通过Harmony系统建模方法对IMA应用进行软件开发,得出以下结论:

1)基于模型的软件设计方法具有更高的可视化程度,可以在更高层次进行设计与验证,使用该方法开发IMA应用可以减少出错概率.

2)IMA应用的开发过程中,模块操作系统的构建、分区操作系统的构建以及综合的构建过程中所开发的文件在任何一个IMA应用开发过程中内容都是类似的,具有一定的共性,只有在应用的构建过程中所开发的文件是特别的,不同的应用有着不同的源码,实现不同的功能,有着不同的内存配置和端口配置.

References)

[1]周庆,刘斌,余正伟,等.综合模块化航电软件仿真测试环境研究[J].航空学报,2012,33(4):723-733.Zhou Q,Liu B,Yu ZW,et al.A framework of simulation testing environment for integrated modular avionics software[J].Acta Aeronautica et Astronautica Sinica,2012,33(4):722-733(in Chinese).

[2]张炯,吕紫旭,胡彦彦,等.虚拟化技术在综合化航电系统中的应用[J].北京航空航天大学学报,2010,36(2):128-130.Zhang J,Lü Z X,Hu Y Y,et al.Perspective view of virtualization technologies for avionics system[J].Journal of Beijing University of Aeronautics and Astronautics,2010,36(2):128-129(in Chinese).

[3]郑军,刘畅,任占勇.综合模块化航空电子软件测试环境[J].计算机工程与设计,2011,32(8):2737-2738.Zheng J,Liu C,Ren Z Y.Integrated modular avionics software testing environment[J].Computer Egineering and Design,2011,32(8):2737-2738(in Chinese).

[4]蒲小勃.现代航空电子系统与综合[M].北京:航空工业出版社,2013:354-356.Pu X B.Modern avionics system and integration[M].Beijing:Aviation Industry Press,2013:354-356(in Chinese).

[5] Hoffman H P.Rational Harmony for systems engineering deskbook,Release3.1[M].Somers,NY:IBM Software Group,2010:45-50.

[6]王安生.软件工程化[M].北京:清华大学出版社,2014:136-138.Wang A S.Software engineering[M].Beijing:Tsinghua University Press,2014:136-138(in Chinese).

[7]张彦,庄锡明.基于模型的开发方法在通信管理模块软件中的应用[J].航空电子技术,2013,44(2):31-32.Zhang Y,Zhuang X M.Application of model-based development in communication management module[J].Avionics Technology,2013,44(2):31-32(in Chinese).

[8] RTCA DO-297.Integrated modular avionics(IMA)development guidance and certification considerations[S].Washington,D.C.:RTCA,Inc.,2005:25-28.

[9] ARINC Specification 653P1-3.Avionics application software standard interface part1-required services[S].Maryland:Aeronautical Radio,Inc.,2010:35-37.

[10] Wind River System,Inc.Vxworks653 configuration and build guide[EB/OL].Alameda,CA:Wind River Systems,Inc,2007(2011-03-10)[2014-11-28].http:∥www.windriver.com.

[11] Free Software Foundation.GNU make[EB/OL].Boston,MA:Free Software Foundation,2002(2014-07-01)[2014-11-28].http:∥savannah.gnu.org/projects/make.

[12]张欣毅.XML简明教程[M].北京:清华大学出版社,2009:86-88.Zhang X Y.A concise course in XML[M].Beijing:Tsinghua University Press,2009:86-88(in Chinese).

[13] Wind River System,Inc.Vxworks 653 programmer’s guide[EB/OL].Alameda,CA:Wind River Systems,Inc,2007(2011-03-10)[2014-11-28].http:∥www.windriver.com.

[14]乔乃强,徐涛,谷青范.ARINC653分区调度算法的研究与改进[J].计算机工程,2011,37(20):249-251.Qiao N Q,Xu T,Gu Q F.ARINC653 partition schedule research and improvement[J].Computer Egineering,2011,37(20):249-251(in Chinese).

[15] Aliki Ott.System testing in the avioincs domain[D].Bremen:Bremen University,2007.

猜你喜欢

开发人员镜像端口
一种有源二端口网络参数计算方法
一种端口故障的解决方案
镜像
多按键情况下,单片机端口不足的解决方法
Semtech发布LoRa Basics 以加速物联网应用
现有网络架构及迁移方案
镜像
后悔了?教你隐藏开发人员选项
镜像
三星SMI扩展Java论坛 开发人员可用母语