一种在Flash存储器中高效的使用软件断点调试的方法技术

技术编号:6722159 阅读:408 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种在Flash存储器中高效的使用软件断点调试的方法,在调试器中设置有Flash软件断点管理控制器、Flash程序下载器和指令解析器,通过ICE连接调试器和目标处理器系统,调试器通过ICE来控制目标处理,获取和修改处理器状态,读写Flash存储器数据;通过Flash软件断点管理控制器存储和管理Flash软件断点信息,控制Flash软件断点状态转换,控制Flash软件断点的新建、删除、恢复、屏蔽、使能和更新操作以及控制执行替换指令组。本发明专利技术有益的效果是:减少对Flash的擦写可减少调试时间,特别是从Flash软件断点处继续运行时,做到和在RAM里面设置软件断点一样快速的效果;Flash的擦写操作影响了Flash的使用寿命,减少Flash的擦写操作,可有效提高Flash的使用寿命。

【技术实现步骤摘要】

本专利技术涉及用于处理器程序开发的集成开发环境的调试功能和工具的一种改进, 尤其是。
技术介绍
调试程序是程序开发人员在开发程序过程中通过控制程序的运行、停止、单步、中 断和查看状态等手段,来发现和改正程序中的错误或故障。在线调试是一种通过ICE将程 序下载到目标系统上进行调试的一种手段。断点是控制程序执行中断的一种重要手段,按其原理可分为硬件断点和软件断 点。硬件断点需要处理器内部电路支持,通常通过比较电路来触发处理器运行的中断,这种 方式需要消耗大量的硬件资源,因此在大多数处理器中硬件断点的个数是非常有限的,如 ARM7/9内核最多支持两个硬件断点;软件断点是基于程序执行期间由处理器的断点指令 来实现的,当处理器执行断点指令时,或产生异常进入调试状态,或停止处理器,从而达到 中断程序执行的作用。软件断点的设置和取消操作是通过替换指令的方式来完成的。当需要在程序的某 处设置软件断点时,调试器先通过ICE将该处代码读回保存备份,然后将断点指令代码写 入该地址,覆盖原来的代码数据;当处理器运行到该地址时,便会产生中断,达到控制运行 的目的;当需要继续运行时,则需要取消断点,取消的方法就是恢复原来备份的该处指令代 码。软件断点的优点在于它不受处理器硬件资源的限制,可以设置无限多个断点,使得在满 足芯片在线调试的需要下不增加硬件资源,因而在在线调试中被广泛使用。但是,传统的软件断点只能设在RAM这类可以简单的随机写入的存储器中,而随 着系统代码量越来越大,芯片成本要求越来越低,就要求系统直接在Flash等非易失性存 储器进行调试运行,因此对在Flash存储器中设置软件断点的要求变得非常迫切。Flash存储器的写入方式不同于RAM,在Flash写入前必须要先进行擦除,而擦除 的单元通常不是以字节或字,而是以扇区sector为单元的,SST39VF1601扇区大小4KB,所 以在Flash中设置/取消软件断点时,首先要将整个扇区的内容读出,修改断点地址处内 容,然后擦除整个扇区后将所有内容一起写入。这种按扇区为单元的读-修改-写的操作 需要较长的时间,并影响Flash寿命。现有相关技术的技术方案1.为了解决在非易失性存储器中设置软件断点难以实现的问题,提出了一种用于 与存储器装置一起使用的软件断点的方法,该方法实际上是软件断点的硬件实现,它需要 修改现有处理器的结构,通过解码处理器系统地址来判断是否为断点地址,如果为断点地 址,则处理器不从非易失性存储器中取指,而从软件断点管理器中读取断点指令,执行后产 生中断。该方法尽管可以解决在非易失性存储器中设置软件断点的问题,但它修改了处理 器结构,增加了复杂性,而且每个软件断点都需要硬件电路来实现,只能根据硬件资源设置 有限个软件断点。2.目前大部分在Flash中调试的仿真开发平台包括集成开发环境和ICE都采用硬 件断点来实现调试,如RealView MDK+ULINK ;有部分仿真开发平台开始支持在Flash中设 置软件断点,如IAR J-Link forARM和广州致远电子有限公司的TKkope嵌入式仿真开发 平台,他们都是采用按扇区为单元的读-修改-写的操作来实现软件断点,当软件断点触发 后重新运行时,都需要对断点处指令反复替换的操作,所以在执行到Flash中软件断点的 时候会感觉到有一个明显停顿的时间。本专利技术提出了一种在Flash中使用软件断点进行在线调试的系统和方法,不改变 现有处理器结构和处理器芯片系统和不增加处理器芯片的成本,实现在Flash中设置软件 断点的功能,并使用户在断点运行停止后再运行时如同在RAM中一样,不会感觉到明显的 停顿,提高了工程师开发的效率,而且减少调试中对Flash的擦写操作,提高Flash的使用 寿命和性能。
技术实现思路
本专利技术的目的正是要克服上述技术的不足,而提供一种在Flash存储器中高效的 使用软件断点调试的方法。本专利技术解决其技术问题采用的技术方案这种在Flash存储器中高效的使用软件 断点调试的方法,在调试器中设置有Flash软件断点管理控制器、Flash程序下载器和指 令解析器,通过ICE连接调试器和目标处理器系统,调试器通过ICE来控制目标处理,获取 和修改处理器状态,读写Flash存储器数据;通过Flash软件断点管理控制器存储和管理 Flash软件断点信息,控制Flash软件断点状态转换,控制Flash软件断点的新建、删除、恢 复、屏蔽、使能和更新操作以及控制执行替换指令组;通过Flash程序下载器控制将编译后 的代码下载到Flash存储器中;通过指令解析器产生替换指令组的装置,接收由Flash软件 断点管理控制器传递的断点地址,并通过ICE读取断点地址处的数据,分析该处的处理器 指令,并转换成由Flash软件断点管理控制器传递的替换地址处执行的产生相同结果的替 换指令组;若原指令为地址和程序计数器不相关指令,则替换指令组为原指令加上跳转到 其下一条指令的无条件跳转指令;若原指令为地址或程序计数器相关指令,则需要产生在 替换指令地址下的新指令加上跳转到原指令的下一条指令的无条件跳转指令,若长度不足 对齐大小,可用空指令填充;最终,它将断点原指令和替换指令组一并返回给Flash软件断 点管理控制器保存。作为优选,Flash软件断点信息包含断点地址、所在源文件名、所在源代码行号、断 点类型、断点处原指令代码、断点地址所在扇区、替换指令组代码、替换地址、断点初始状态 和断点最终状态,断点状态包括无断点、新建并有效、新建并无效、取消、无效、有效。作为优选,替换指令组代码是由指令解析器通过ICE获取断点地址处的数据和替 换地址产生的一组处理器指令,替换地址信息标识替换指令组代码存放的位置。作为优选,由Flash软件断点管理控制器配置信息包括替换地址范围、替换地址 对齐大小以及替换地址存储介质,替换地址范围表明可替换指令组的存储器区域,替换地 址对齐大小表明替换指令组占用的字节数,Flash软件断点管理控制器根据替换地址对齐 大小将替换地址范围分成若干份,每一份用来存放一条原指令的替换指令组。本专利技术有益的效果是1、改进了在Flash中设置软件断点的管理和控制方法;2、减少了对Flash的擦写操作,使得在不修改Flash软件断点的情况下,不对 Flash进行擦写操作;3,Flash的擦写操作通常需要较长的时间,减少对Flash的擦写可减少调试时间, 特别是从Flash软件断点处继续运行时,做到和在RAM里面设置软件断点一样快速的效 果;4,Flash的擦写操作影响了 Flash的使用寿命,减少Flash的擦写操作,可有效提 高Flash的使用寿命;5、这种方式不需要改变现有处理器的硬件结构。 附图说明图1为本专利技术在flash中使用软件断点调试系统结构图;图2为本专利技术flash软件断点管理控制器的状态转换图;图3为本专利技术新建flash软件断点命令处理流程图;图4为本专利技术非跳转指令替换原理示意图;图5为本专利技术跳转指令替换原理示意图。图6为本专利技术Flash软件断点管理控制器原理示意图。 具体实施例方式下面结合附图和实施例对本专利技术作进一步说明系统结构如图1所示,本专利技术所述系统由调试器1,ICE5以及目标处理器系统6组 成,其本文档来自技高网
...

【技术保护点】
1.一种在Flash存储器中高效的使用软件断点调试的方法,其特征在于:在调试器(1)中设置有Flash软件断点管理控制器(2)、Flash程序下载器(3)和指令解析器(4),通过ICE(5)连接调试器和目标处理器系统,调试器通过ICE(5)来控制目标处理,获取和修改处理器状态,读写Flash存储器数据;通过Flash软件断点管理控制器(2)存储和管理Flash软件断点信息,控制Flash软件断点状态转换,控制Flash软件断点的新建、删除、恢复、屏蔽、使能和更新操作以及控制执行替换指令组;通过Flash程序下载器(3)控制将编译后的代码下载到Flash存储器(8)中;通过指令解析器(4)产生替换指令组的装置,接收由Flash软件断点管理控制器(2)传递的断点地址,并通过ICE读取断点地址处的数据,分析该处的处理器指令,并转换成由Flash软件断点管理控制器(2)传递的替换地址处执行的产生相同结果的替换指令组;若原指令为地址和程序计数器不相关指令,则替换指令组为原指令加上跳转到其下一条指令的无条件跳转指令;若原指令为地址或程序计数器相关指令,则需要产生在替换指令地址下的新指令加上跳转到原指令的下一条指令的无条件跳转指令,若长度不足对齐大小,可用空指令填充;最终,它将断点原指令和替换指令组一并返回给Flash软件断点管理控制器(2)保存。...

【技术特征摘要】
1.一种在Flash存储器中高效的使用软件断点调试的方法,其特征在于在调试器(1) 中设置有Flash软件断点管理控制器( 、Flash程序下载器( 和指令解析器,通过 ICE(5)连接调试器和目标处理器系统,调试器通过ICE 来控制目标处理,获取和修改处 理器状态,读写Flash存储器数据;通过Flash软件断点管理控制器( 存储和管理Flash 软件断点信息,控制Flash软件断点状态转换,控制Flash软件断点的新建、删除、恢复、屏 蔽、使能和更新操作以及控制执行替换指令组;通过Flash程序下载器C3)控制将编译后 的代码下载到Flash存储器(8)中;通过指令解析器(4)产生替换指令组的装置,接收由 Flash软件断点管理控制器(2)传递的断点地址,并通过ICE读取断点地址处的数据,分析 该处的处理器指令,并转换成由Flash软件断点管理控制器( 传递的替换地址处执行的 产生相同结果的替换指令组;若原指令为地址和程序计数器不相关指令,则替换指令组为 原指令加上跳转到其下一条指令的无条件跳转指令;若原指令为地址或程序计数器相关指 令,则需要产生在替换指令地址下的新指令加上跳转到原指令的下一条指令的无条件跳转 指令,若长度不足...

【专利技术属性】
技术研发人员:钱志恒贺晓明魏院辉
申请(专利权)人:杭州晟元芯片技术有限公司
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1