- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
高可靠性飞行代码的自动化验证技术
可执行目标代码评估
1. 代码效率
Simulink通过使用软件在回路(SIL)和处理器在回路(PIL)测试进行评估分析来支持可执行目标代码验证。借助SIL测试,可对生成的代码进行编译并在主机上运行,以便使用Simulink作为测试装置提供的测试数据进行代码执行的快速评估。通过PIL测试,可将生成的代码交叉编译成可执行目标代码(EOC),并且在真正的飞行处理器或指令集模拟器上运行,同样使用Simulink作为在环测试装置。
对于任何使用可定制API和参考实现的嵌入式处理器的裸机或实时操作系统执行,Embedded Coder 都支持处理器在回路(PIL)测试。有这样一个示例可供观看和下载,这个示例中用到Green Hills MULTI IDE和用于Freescale MPC8620处理器的Integrity RTOS(图4)。
图 4:使用 PIL 测试验证可执行目标代码。
代码特性执行报告在PIL测试过程中生成,用于评估瓶颈和优化设计,例如使用代码替换技术,这项技术以单指令/多数据(SIMD)和Intel集成性能基元(IPP)优化代替默认的ANSI/ISO C自动生成代码。MATLAB可基于代码特性执行数据生成图形,以便将来进行分析。DO-178和相关标准要求在复杂飞行硬件上验证复杂飞行软件,使PIL测试成为高完整性系统的关键验证环节(图5)。
图 5:使用 MATLAB 对执行周期进行特性分析。
2. 代码验证
借助基于模型的设计,可将用于验证模型的同样基于需求的仿真测试用例重用于SIL和PIL测试。工程师可应用模型仿真中使用的相同输入数据,然后使用Simulink Data Inspector工具将SIL和 PIL测试结果与模型仿真结果进行比较,以确定它们在数值上是否相等(图6)。
图 6:使用 Simulation Data Inspector 比较仿真和 PIL 测试结果。
DO-178B还需要进行软件的结构覆盖率分析,包括修正的判定覆盖率(MC/DC),以评估代码在测试过程中是否完全被执行。模型覆盖率分析是模型级的类似概念,它通过Simulink Verification
and Validation工具实现,用于评估模型是否已完全测试。总的来说,模型和代码覆盖率分析可检测设计、实现和测试中的潜在错误。Simulink Verification and Validation可提供模型覆盖率分析功能。在R2011b版中,Embedded Coder与LDRA Testbed集成在一起,从而支持代码覆盖率分析和其他DO-178工作流程。
总之,基于模型的设计可实现自动生成既高效又能够在模型、源代码和可执行目标代码级别轻松进行验证的飞行代码。通过将开发和验证集中在Simulink模型和仿真测试用例上这种方式可以使模型和测试用例得到重用,并有助于满足DO-178B和DO-178C软件目标,这样企业可极大地降低成本并缩短产品上市时间。集成和已发布的API可通过DO-178开发项目中使用的第三方工具实现整体解决方案。为补充这些软件开发过程改进,Simulink在与MathWorks产品搭配使用以进行系统物理建模、硬件在环(HIL)测试和FPGA的HDL代码生成时,通过其对系统工程和相关标准(例如,ARP 4754)以及硬件开发和相关标准(例如,DO-254)的支持提供了附加优势。
图 7:使用 Simulink 模型覆盖率分析工具和 LDRA Testbed 测量模型和代码覆盖率。