[发明专利]用于在具有快闪程序存储器的微控制器中提供程序断点的机制无效
申请号: | 200680028287.2 | 申请日: | 2006-06-07 |
公开(公告)号: | CN101233495A | 公开(公告)日: | 2008-07-30 |
发明(设计)人: | 弗罗德·米尔希·彼得森 | 申请(专利权)人: | 爱特梅尔公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 北京律盟知识产权代理有限责任公司 | 代理人: | 孟锐 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 具有 程序 存储器 控制器 提供 断点 机制 | ||
技术领域
本发明大体上涉及对于芯片上快闪程序存储器的芯片上调试功能性,且更明确地说涉及一种用于将程序断点插入在快闪程序存储器中而不需要对所述存储器进行擦除和重新编程的机制。
背景技术
随着具有芯片上存储器的高速微控制器的发展,嵌入式软件开发调试已变得日益具有挑战性。嵌入式系统总线的高信号速度和缺乏可观察性要求包含芯片上调试(OCD)部件来辅助软件开发过程。OCD逻辑的成本与所接受的侵入性水平(即在调试期间CPU可偏离于常规软件执行的程度)联系。
最基本的调试部件之一是程序断点。程序断点涉及当软件执行到达特定地址时暂停CPU。一旦暂停CPU,调试工具就可通过经由调试协议发布待于CPU上执行的指令来观察此时CPU中的系统存储器和寄存器的状态。一旦检查完成,调试工具就可使CPU返回正常模式,且执行将继续直到下一断点为止。
实施程序断点的两种主要方法称为硬件和软件断点。
硬件断点指的是检测CPU何时即将执行特定程序地址。此涉及将指令总线地址——或附加到所取指令的地址(视计算机结构而定)——与由调试工具写入的调试寄存器中的指定地址进行比较。硬件断点是非侵入性的,其在断点触发之前本质上对软件执行无任何影响。因此,这些断点适于需要完全非侵入性的少数调试情形。然而,其较昂贵,因为其每断点均需要一寄存器和一比较器。由于这个原因,其是所有芯片上调试系统中有限的资源。
软件断点固有地比硬件断点简单,且指的是CPU将特定操作码作为断点指令执行,从而立即暂停CPU并将控制返回给调试工具。因此,调试工具可用断点指令取代程序存储器中的任何操作码,从而使CPU在所述地址处暂停。这还意味着调试工具必须保持所插入的所有软件断点的列表,并记住处于所述位置的原始操作码。
当从软件断点返回时,调试工具必须在CPU仍处于暂停模式时在CPU上执行原始操作码,并接着使CPU返回正常操作。因此,软件断点比硬件断点更具侵入性,因为经断点的指令必须在暂停模式下运行。然而,大多数调试情形允许这种侵入性,且所述方法的极大益处是可在没有额外硬件成本的情况下实施无限数目的断点。由于这个原因,如果存储器技术支持的话,软件断点通常比硬件断点优选。
可如何插入软件断点取决于微控制器的存储器技术。程序存储器可以是易失性或非易失性的。在任一情况下,程序存储器通常可由调试工具直接(例如,通过JTAG命令)或通过暂停CPU并发布存取程序存储器的指令而间接地存取。
易失性(即,基于RAM的)存储器固有地可读取/写入,而对非易失性存储器的写入存取视技术而定。快闪程序存储器正迅速成为用于嵌入式微控制器的最普遍的非易失性技术。快闪程序存储器可被擦除(即,所有存储器单元设定为1)和写入(即,清除选定的存储器单元)。擦除和写入序列花费大量时间,如果需要对整个快闪程序存储器进行编程的话通常花费许多秒。并且,所述序列磨损快闪程序存储器,且可能只实行几千次快闪程序存储器就可能发生故障。
软件断点在具有基于RAM的程序存储器的装置中运行得较好,但在基于快闪程序存储器的系统中具有明显的缺点,因为其需要用经修改的目标码对存储器进行擦除和重新编程。这在调试期间花费大量的时间,且最终可能磨损快闪程序存储器,从而导致装置的永久故障。典型的调试会话涉及随着故障码被缩小范围并被识别出而逐渐地添加若干断点。
因此,快闪程序存储器必须针对每一调试会话而被重新编程若干次,且需要多个调试会话来调试大量嵌入式代码。这一问题随着嵌入式快闪程序存储器的尺寸增加(因为调试操作的数目增加且因为编程时间增加)而加剧。由于这个原因,即使支持软件断点,快闪程序存储器微控制器中也需要大量硬件断点,从而增加了装置的成本。因此,概括地说,现有技术中的软件断点需要擦除快闪程序存储器来插入断点,且能够检测操作码的硬件断点需要实施单独的调试寄存器,且更加昂贵。
因此,需要一种用于克服上述问题的系统和方法。本发明解决了这一需要。
发明内容
本发明揭示一种微控制器。所述微控制器包含中央处理器单元(CPU)和经由指令总线与所述CPU通信的快闪程序存储器。所述微控制器包含耦合到所述CPU的芯片上调试(OCD)逻辑。所述OCD逻辑含有检测所述CPU与所述快闪程序存储器之间的指令总线上的预定操作码以提供程序断点的逻辑。
根据本发明的系统和方法提供对基于快闪程序存储器的微控制器中的程序断点的大大改进的支持,且使芯片上调试逻辑和复杂性的增加最小化。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱特梅尔公司,未经爱特梅尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680028287.2/2.html,转载请声明来源钻瓜专利网。