一种非侵入式的覆盖率收集系统的制作方法

摘要: 本发明涉及芯片验证,特别是涉及一种非侵入式的覆盖率收集系统。背景技术:1、目前,芯片中固件程序的修复难度较大,当固件程序存储于芯片中的闪存存储器时,对固件程序的...
一种非侵入式的覆盖率收集系统的制作方法

本发明涉及芯片验证,特别是涉及一种非侵入式的覆盖率收集系统。

背景技术:

1、目前,芯片中固件程序的修复难度较大,当固件程序存储于芯片中的闪存存储器时,对固件程序的修复需要对闪存存储器进行重新烧录,当固件程序固化于芯片中时,甚至需要对芯片重新流片,因此,针对芯片中固件程序的验证变得尤为重要。

2、在现有技术中,提出了一种侵入式的覆盖率收集方法,具体为在固件程序中添加代码段对应的标记代码,标记代码用于将其对应的代码行数写入存储器中,使得在某一代码段执行之后,会自动执行该代码段对应的标记代码,通过标记代码的记录结果确定各个代码段是否被执行,进而完成固件程序代码的覆盖率收集。

3、然而,该方式需要对固件程序代码进行修改,标记代码本质上属于固件程序不需要的冗余代码,侵入式方式会导致固件程序代码验证的效率降低,而且,在某些场景下,标记代码无法完备表征固件代码段执行的情况,例如,当某个固件代码段在多个触发条件满足任意一个时即被执行,标记代码能够记录到该固件代码段被执行,但无法保证覆盖到每个触发条件分别被满足的场景,导致该固件代码段的触发代码的验证完备性较差。

4、因此,如何提高验证效率和验证完备性成为了亟待解决的问题。

技术实现思路

1、针对上述技术问题,本发明采用的技术方案为:

2、一种非侵入式的覆盖率收集系统,所述系统包括:处理器和存储有计算机程序的存储器,当所述计算机程序被处理器执行时,实现以下步骤:

3、s101,执行芯片中固件对应的测试用例集合,通过记录执行过程中的程序指针,得到若干个已执行汇编指令标识。

4、s102,将所有已执行汇编指令标识进行排序和去重处理,得到目标汇编指令标识序列。

5、s103,根据所述目标汇编指令标识序列和所述固件对应的预设的参考汇编指令标识序列,确定初始覆盖率。

6、s104,当所述初始覆盖率不满足第一预设条件时,根据所述目标汇编指令标识序列和所述参考汇编指令标识序列,确定若干个未执行参考汇编指令标识。

7、s105,根据各个未执行参考汇编指令标识从所述固件对应的代码中确定若干个未执行固件代码段。

8、s106,由用户对各个未执行固件代码段进行分析后,设置各个未执行固件代码段的屏蔽状态,其中,所述屏蔽状态包括已屏蔽状态和未屏蔽状态。

9、s107,根据所述目标汇编指令标识序列、所述参考汇编指令标识序列和处于已屏蔽状态的各个未执行固件代码段分别对应的参考汇编指令标识,确定目标覆盖率。

10、本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种非侵入式的覆盖率收集系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:

11、与现有技术中添加标记代码的方式相比,通过非侵入式方式收集固件代码执行的覆盖率,不对固件代码进行修改,保证了固件代码的验证效率,固件代码中各种类型的代码段均对应有至少一个程序指针,通过记录程序指针的方式能够保证固件代码中所有代码段的执行均被完整覆盖到,提高了固件代码的验证完备性。

1.一种非侵入式的覆盖率收集系统,其特征在于,所述系统包括:处理器和存储有计算机程序的存储器,当所述计算机程序被处理器执行时,实现以下步骤:

2.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述固件对应的代码中各个代码段分别对应有至少一个程序指针,不同代码段对应的程序指针不同。

3.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述执行芯片中固件对应的测试用例集合,通过记录执行过程中的程序指针,得到若干个已执行汇编指令标识,包括:

4.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述根据所述目标汇编指令标识序列和所述固件对应的预设的参考汇编指令标识序列,确定初始覆盖率,包括:

5.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述第一预设条件为所述初始覆盖率大于或者等于预设覆盖率阈值。

6.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述根据所述目标汇编指令标识序列和所述参考汇编指令标识序列,确定若干个未执行参考汇编指令标识,包括:

7.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述根据各个未执行参考汇编指令标识从所述固件对应的代码中确定若干个未执行固件代码段,包括:

8.根据权利要求1所述的非侵入式的覆盖率收集系统,其特征在于,所述根据所述目标汇编指令标识序列、所述参考汇编指令标识序列和处于已屏蔽状态的各个未执行固件代码段分别对应的参考汇编指令标识,确定目标覆盖率,包括: