目标码覆盖率分析在PPC目标环境中的应用

来源 :电子世界 | 被引量 : 0次 | 上传用户:jinger1999
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】提出了一种对编译器产生的目标代码覆盖率的分析方法。传统的结构化语言的覆盖技术使用的是源代码级的,无法对编译器产生的代码进行验证,本文介绍了VerOCode软件在PPC目标环境中目标码覆盖率的分析验证。
  【关键词】DO-178B;目标码覆盖;VerOCode
  1.引言
  目标码覆盖率分析技术是嵌入式软件系统质量保障的重要技术手段,目前在安全领域认可与使用的目标码验证要求来自于美国航空无线电技术委员会(RTCA)和欧洲民用航空设备组织(EUROCAE),为美国联邦航空管理局(FAA)以及欧洲航空管理部门的机载软件适航认证而制定的DO-178B/ED-12B标准。DO-178B/ED-12B标准将软件安全等级分为A-E级,在DO-178B 6.4.4.2中要求:“覆盖率分析可以在源代码上开展,对于A级软件并且编译器产生的目标代码不能直接追踪到源代码的语句,那么需要对目标码进行额外的验证工作以确保产生的代码序列是正确的。”
  这里提到的“基于目标码的额外验证工作”可以由目标码覆盖率分析来实现,即:编译器在编译过程中在目标码中添加了额外的代码,可以通过目标码覆盖率分析发现这部分代码,并且可以建立源代码与目标代码之间的关系。而源代码覆盖率方法由于进行了代码插装,测试的对象已经改变了,无法对编译器多添加的代码进行验证。在国外的适航认证经验中,目标码覆盖率分析已经得到广泛的使用,并且被适航认证局所认可。
  2.目标码覆盖
  2.1 目标码覆盖的出处
  目标码覆盖的概念和要求在RTCA/DO-178B标准中明确提出,相关内容如下:结构覆盖分析的目的是确定在基于需求的测试过程中,哪些代码结构没有被执行。基于需求的测试用例可能没有完全执行所有的代码结构,因此需要进行结构覆盖分析,并要求进行覆盖分析验证。
  结构化语言的覆盖分析可以在源代码级别进行。但是如果是DO-178B A级软件并且编译器产生的目标代码不能直接追踪到源代码中的语句,那么验证工作就需要采取额外地分析方法,即在目标代码的级别上验证编译器产生的代码序列的正确性。在目标代码中的数组边界检查就是编译成生成(compiler-generated)的不能直接追踪到源代码的目标代码的一个实例。
  2.2 进行目标码验证的原因
  (1)测试充分性要求
  目标码的验证关心编译器产生的目标码的控制流结构有多少与源代码不一致。这些不一致产生的原因有许多,如:编译器的解释、优化等。然而,传统的结构化语言的覆盖率技术使用的是源码级的,尽管在处理器上执行的是目标码,二者之间控制流结构的不同在测试过程中会产生重大的差距。
  MISRA C:2004认为C程序设计中存在的风险可能由5个方面造成:程序员的失误、程序员对语言的误解、程序员对编译器的误解、编译器的错误和运行时错误(runtime errors)。
  (2)程序员对编程语言和编译器的误解
  编译器的行为不符合程序员的想法。很多高级语言标准特别是工业级语言标准的定义并不精确。如果一个语言的某些特征是不完全定义的,或者说是歧义的,那么就可能出现程序员的意思与编译器的解释不一致的情况。所以对于不同的编译器,相同的源代码其行为可能不同;同一个编译器,其行为也可能因为上下文的不同而不同。例如C语言中的volatile的类型就是一个例子。
  (3)编译器的错误
  语言的编译器本身是一个软件工具,它编译代码并不总是正确的。例如可能在某些情况下它没有遵守语言标准,或者它本身就有错误。随着编译器验证技术的不断发展,越来越多的编译器问题被暴露出来。
  针对嵌入式软件,由于运行资源有限,有时编译器产成的代码本身并没有问题,但仍然会导致系统失效。
  3.关于编译器验证
  对于高级语言程序,编译器经常会引入风险。对编译器进行验证是保证其正确产生目标码的最直接的方法。然而,目前对编译器的完全验证还存在非常困难的技术问题。编译器是一种特殊的系统软件,编译器的输入和输出都是应用软件或系统软件。由于编译器的这个特殊性和编译器本身结构的复杂性,使编译器的测试验证面临着巨大的挑战。目前,关于编译器的验证问题已经有广泛的研究,例如编译器使用的主要算术逻辑的验证、算术表达式的验证、编译器结构的验证等。但这些编译器的验证方法都比较复杂,实用性和灵活性也不强。此外,编译器验证软件的价格昂贵,编译器验证的效果难以估计,一般的软件开发单位也不会出资进行编译器验证。在不能完全信赖编译器的情况下,进行目标码验证是唯一的选择。
  4.解决途径
  目前,为了满足市场上不断涌现的目标码验证需求,有几个著名的外国厂商推出了相关的支持方案和工具,比如英国LDRA公司的Tbrun工具、美国IBM公司的TestRT工具和和美国VeroCel公司的VeroCode工具等,本文重点介绍VeroCode工具。VerOCode是目标码覆盖率分析工具,VeroCode不需要特殊硬件,被测试的代码也不需要插装。应用代码在目标计算机(例如:PowerPC)上执行,执行的数据图表收集到一个宿主机上(PC)。VerOCode使用收集的执行数据图表与链接器符号信息和编译器产生的清单一起,可以显示出哪些指令执行了,哪些指令没有执行,以及条件指令执行过程中的分支条件代码状态。产生的VerOCode结果清单包含了DO-178B A级,适航认证最高级别的安全性要求所要求的目标码覆盖覆盖率分析的证明。
  VerOCode已成功实施到国内某研究所的实际项目之中,针对PPC裸板应用和使用DeltaOS的PPC板应用,VerOcode实现了目标码级的覆盖率分析。
  VerOCode记录和显示被测试程序中执行的目标码指令。对于条件指令,VerOCode显示每次指令执行时的条件代码的状态。VerOCode工作在Host-Target模式,其工作流程图如图1所示。   监控和测试程序(测试控制和被测单元)在PPC目标机上执行,覆盖率在机器码级获得。由于目标系统提供printk函数,可在串口打印数据输出,通过超级终端或其他串口监控程序可获得数据结果。一个测试运行以后,收集的覆盖率数据通过串口上传到宿主机来分析。测试数据格式以字母H作为开头行,D行和Z行交替出现作为数据行,T行做为结束行。
  VeroMon.o监控程序要求必须运行在系统态(supervisor-level),它要调用mfmsr等特权指令读取寄存器状态。同时被测试系统的剩余内存分配必须满足VeroMon.o的内存要求:
  .text–Monitor’s code(approx.5KB);
  .data–initialized data(approx.1KB);
  .bss–coverage data table(256 KB,global symbol coverageDataTable).
  对于PPC裸板应用,VeroCode提供的Monitor代码不需要做任何定制即可实现目标码覆盖的验证,并通过目标板下载程序运行,得到详细的目标码覆盖率报告。
  对于使用国产DeltaOS操作系统的PPC板,由于RTOS控制了目标板的所有硬件资源,通过分析其RTOS的硬件Vector列表,重新对Monitor进行定制,实现VerOcode代码与DeltaOS代码的兼容,从而实现了嵌入式操作系统“道DeltaOS”的支持。
  5.结束语
  不依赖于源代码以及编译器的目标码覆盖率分析,是实现符合DO-178B/ED-12B标准规定的目标码分析与验证的难点之一,本文通过在PPC裸板应用和使用DeltaOS的PPC板应用,VerOcode实现了目标码级的覆盖率分析。
  参考文献
  [1]DO-178B,DO-178B software considerations in airborne systems and equipment certification[S].
  [2]Verocel inc.VerOCode-software coverage tool[OL].http://www.verocel.com.
  [3]文勇,蔡铭,陈刚,杨子江,金星.目标码流图和结构覆盖率获取方法[J].计算机工程与设计,2010,31(11).
  作者简介:叶祥明(1978—),江西瑞昌人,大学本科,工程师,现供职于中国船舶重工集团公司第七一○研究所,研究方向:软件测试、软件工程。
其他文献
介绍了太阳能充电电路的原理与工作特性,分析了基于11494芯片的降压型电路,设计了降压型充电电路,并制作了实物。该方案电路简单,可靠性高,转换效率高,可用于多种常用电器的充电。
【摘要】结合讲授计算机电路基础教学的体会,针对目前计算机电路基础教学常见的存在问题,从教学方法,教学内容和教学手段三个方面提出改进计算机电路基础教学的几点建议。有助于学生激发学习兴趣和培养学生解决实际问题的思维方法。  【关键词】计算机电路基础;教学方法;教学内容;教学手段  1.引言  《计算机电路基础》是计算机类专业的重要专业基础课程,也是一门理论性和实践性都很强的课程,由于它的课程性质决定了
3月21日,世界诗歌日那天,朋友发来信息,我才惊觉海子离开尘世已经20周年了。世界诗歌日是联合国在海子离世10年后才设立的,与海子祭日只差几天,然而,大多中国诗人并不关心这个日子
【摘要】现阶段教育越来越重要,本文基于网络远程教育的虚拟技术,提出了一种实验远程教育平台的实现方案,在该方案中将VRML技术和ActiveX技术相结合,并且通过具体的实验来验证,最终科学、合理的构建了远程教育平台,促进了教育系统的进一步升级。  【关键词】远程教育;光纤通信;虚拟实验  在网络远程教育中,虚拟实验主要是指在利用了分散的信息和通信技术在科研以及其他教育性活动中进行远距离离合作和实验的
国务院总理李克强在近日召开的国务院党组会议上指出,要继续深入推进政府职能转变,大幅减少投资项目前置审批,取消全部非行政许可审批事项,消除行政审批“灰色地带”,整治“红顶中介”,着力铲除滋生腐败的土壤。  所谓的“红顶中介”,即政府官员通过一些协会收取服务费、会费、咨询费。究其原因,源于这些“红顶中介”的背景和资质,很多的中介机构管事人或托管人大都是行政單位在职或退居二线的领导干部兼任;或中介机构由
2007年12月21日,俄罗斯第一副总理德米特里·梅德韦杰夫作为统一俄罗斯党总统候选人已向中央选举委员会递交了参选文件,正式参选俄罗斯总统。此前,素有“政权党”之称的统一