[发明专利]用于微控制器程序的代码覆盖范围跟踪在审
申请号: | 201880014801.X | 申请日: | 2018-04-27 |
公开(公告)号: | CN110419031A | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | J·泽维奇;J·麦金尼斯 | 申请(专利权)人: | 微芯片技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 蔡悦;陈斌 |
地址: | 美国亚*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序代码 检测点 微控制器 记录信息 基本块 存储器设备 代码覆盖 跟踪指令 存储 测试工具 存储检测 逻辑关系 使用测试 编译器 处理器 子集 集合 指令 跟踪 检测 配置 | ||
一种微控制器,该微控制器可包括处理器和至少一个存储器设备,该至少一个存储器设备通过以下方式:基于程序代码中的基本块(指令)之间的逻辑关系来存储(a)限定多个支配弧的程序的程序代码;和(b)存储检测点的集合,该检测点由程序代码基本块的子集组成,该程序代码基本块与多个支配弧对应,每个检测点均位于相应支配弧中。代码覆盖范围实现程序(例如,IDE或编译器)可被配置为利用一个或多个执行跟踪指令检测程序代码中的每个检测点,以存储或生成执行记录信息。可使用测试工具来在微控制器上执行程序,其中程序代码中的每个相应检测点的执行致使相应执行跟踪指令存储或生成执行记录信息,该执行记录信息指示与该检测点对应的支配弧已被测试工具执行。
相关专利申请
本申请要求于2017年5月2日提交的共同拥有的美国临时专利申请号62/500,144的优先权,该申请出于所有目的据此以引用方式并入本文。
技术领域
本公开涉及微控制器,并且更具体地涉及用于例如通过测试套件对微控制器程序的执行进行代码覆盖范围跟踪的系统和方法。
背景技术
通常对设计用于在微控制器上执行的软件程序进行验证,以确保微控制器在执行程序的同时正常工作。可以针对“测试用例”或若干测试用例的测试“套件”进行验证。测试用例是通常在模拟微控制器上的执行的测试环境(与生产环境相反)中的程序的脚本化自动使用,以验证程序对特定任务的性能。测试套件是一批测试用例,该批测试用例一起测试正在验证的所有程序的功能。
可请求或需要程序开发者示出其产品测试套件“覆盖”(即,执行验证测试于)项目中的特定百分比的可执行代码;该百分比常常为100%。验证可执行代码需要经由系统的组装指令分析系统的行为。微控制器内的嵌入式系统可包括数千个或甚至数百万个组装指令。
确定代码覆盖范围的早期历史方法是跟踪代码选择的每个指令执行,并对已执行的指令进行制表。该方法通常需要具有足够的计算能力和数据存储的模拟器和硬件仿真器来跟踪每个指令执行,其中可存在数百万个指令执行。
该技术的现代扩展可在配备有“指令跟踪”机构的(通常更大)微控制器上获得。该机构通常需要昂贵的高速硬件,以通过外部程序(通常为IDE)捕获跟踪流和大量处理时间来存储、然后检索和分析很容易是许多吉字节(或更多)的跟踪数据,这可能既昂贵又耗时。此外,当源代码以高级语言(如C)而非汇编语言编写时,指令与“高级语言语句”的相关性是脆弱的。虽然指令与语句之间常常存在相关性,但其并不总是很容易确定,并且在运行之间很少进行固定。例如,如果编译器优化设置已改变,则指令流可能显著不同,因此任何关联必须是动态的并且必须认识到可执行图像构建和执行环境中的许多改变。这种方法的有益效果在于在非常精细的粒度下是准确的,但对于大的代码体或长的所涉及的测试运行,它是极其低效的。
随后的方法也来源于在高级语言的开发中所体现的理论。此方法需要利用经由串行通信端口传输文本消息的代码来检测分支点(称为“基本块”)。“基本块”的概念源自具有单个入口点的一组连续的机器指令。基本块的边界由编译器容易地确定,但难以根据生成的代码来精确地确定。这导致上文所讨论的方法的改进。通过确定已执行基本块,系统知道基本块中的每个语句都已执行。这导致要跟踪的事件的最佳案例数量减少。遗憾的是,非次要程序通常包含大量(例如,数百个)基本块,这些基本块可能需要大量或不可用量的资源(例如,存储器)来制表它们的执行。因此,该方法的实际示例利用对已被执行的基本块的识别的大量且耗时的通信来检测源代码。在一些微控制器上,这可以采取对例程的调用的形式,该例程通过可用通信信道(常常为UART)输出基本块标识以及可行的“包络”。该方法具有三个显著缺点:1)检测代码可显著地影响待测代码的定时特性和性能,2)检测代码相当大并且可仅需要在每次测试运行中检测应用程序的一部分,这对收集关于代码覆盖范围的数据所需的总时间具有倍増效应,并且3)在部分运行期间收集数据引入了在运行期间不精确相同的环境因素和其他测试因素的不需要的效果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微芯片技术股份有限公司,未经微芯片技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880014801.X/2.html,转载请声明来源钻瓜专利网。