[发明专利]检测未初始化的存储器读取的方法有效
申请号: | 201310651942.1 | 申请日: | 2013-12-04 |
公开(公告)号: | CN103853551B | 公开(公告)日: | 2019-02-01 |
发明(设计)人: | 杰森·L·佩克 | 申请(专利权)人: | 德州仪器公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京律盟知识产权代理有限责任公司 11287 | 代理人: | 林斯凯 |
地址: | 美国德*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 初始化 存储器 读取 方法 | ||
本发明展示一种检测未初始化的存储器读取的方法,其中将随机存取存储器系统的全部或一子组初始化为已知值。实施一个或一个以上观察点,其中在检测到存储器读取之后,将所读取的值与在初始化期间写入的所述值进行比较。如果所述值匹配,那么捕获调试信息并采取适当校正行动。
技术领域
本发明的技术领域为嵌入式存储器调试测试。
背景技术
未初始化的存储器读取(UMR)为软件程序员所遇到的常见问题且往往难以追捕到。存在其中可能遇到UMR的许多情况,但最终UMR被定义为从存储器中的尚未初始化的位置的读取。
可能导致UMR的一些情境为以下各项的读取请求:
·存取已分配但尚未初始化的存储器位置。
·存取超出存储器的经分配块的端的位置。
·尝试存取尚未分配的位置。
·存取存储器中的先前分配但随后释放(或重新分配并移动)的位置。
·存取存储器中的随机位置。
“存取已分配但尚未初始化的存储器位置”中的上文所描述的情境的C中的实例为:
通常,当想到UMR如何发生时,想到执行指令序列的处理器。注意UMR可为系统中的任何主机(包含DMA及外围装置)的读取请求的结果为重要的。
现有技术中的一种方法为在存储器中的各个位置处建立‘观察区(watch)’。一旦建立观察区,即假设其正监视的存储器位置未初始化。借助‘写入’监视对所观察存储器位置的后续存取,从而致使将相关联地址视为经初始化的。如果观察区检测到对未初始化的位置的读取存取,那么触发UMR的等效物。
此方法的缺点为依赖于硬件追踪特定存储器地址或存储器区域的状态。此可导致观察大量额外硬件,通常为大约每地址1个寄存器。
现有技术中已知的另一方法为其中使用存储器的ECC(误差校正码)的经保留/未使用的编码来检测UMR。通过内建自测试(BIST)逻辑将存储器内的ECC初始化为定义为意指‘未初始化’的状态。当向存储器写入时,将用不同于‘未初始化’编码的设定覆写ECC。如果用指示尚未向存储器写入的ECC值读取存储器,那么将产生断点或中断。此方法的缺点为其仅借助支持ECC的存储器具功能性。
发明内容
所提出的发明使用数据观察点来监视通过调试工具设定的特定值的所有读取数据循环。所观察的所述值为预定的且表示未初始化的存储器。此后此值称为UMR_DATA_VALUE。
在UMR调试会话开始时,将用UMR_DATA_VALUE初始化系统中的所有存储器。在其中此方法不实际的系统中,用UMR_DATA_VALUE初始化由于需要检测UMR而定义为调试会话的一部分的某一子组的存储器。
作为程序执行的一部分,每当释放经分配存储器时,将需要用UMR_DATA_VALUE初始化所述经释放存储器的内容。
需要将数据观察点策略性地部署为系统的总线拓扑中的关键监视点。数据观察点监视其附加到的总线基础设施的读取数据循环。当数据观察点检测到在读取数据循环期间观察的值与UMR_DATA_VALUE之间的匹配时,其触发调试序列。在调试序列期间,捕获与读取数据循环相关联的信息且接着采取某一行动。
附图说明
在图式中图解说明本发明的这些及其它方面,其中:
图1图解说明UMR初始化流程;
图2图解说明UMR观察点流程。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于德州仪器公司,未经德州仪器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310651942.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种含有乙基多杀菌素的杀虫组合物
- 下一篇:地方良种猪高效保种保质方法