本发明专利技术公开了一种处理器芯片仿真器,包括仿真芯片,监控模块,监控程序存储器以及用户电脑上的集成开发环境。仿真芯片模拟产品芯片所有功能,仿真芯片内置或外挂用户存储存储器,用户存储器内Code区的保留区域设置与产品芯片一致,用户程序执行进入保留区域时会产生不可屏蔽越界中断。仿真芯片有用户模式和监控模式两种工作状态,用户模式下,仿真芯片从用户程序存储器取指执行用户程序;监控模式下,仿真芯片通过数据/地址总线从所述监控程序存储器读取和执行监控程序,不取指执行用户程序,且PC值跨越进入Code区保留区域地址范围时不产生不可屏蔽越界中断。本发明专利技术能方便用户程序的开发和调试,有助于提高代码开发效率。
【技术实现步骤摘要】
本专利技术涉及仿真器领域,特别是涉及一种处理器芯片仿真器。
技术介绍
处理器芯片内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是仿真器。仿真器内使用包含产品处理器芯片各项功能的仿真芯片,用于模拟产品处理器芯片的工作行为,仿真芯片与仿真器其它部件(存放用户程序的程序存储器、存放数据的数据存储器,以及用户电脑上的集成开发环境等)配合实现用户程序的仿真运行和各项调试功能。很多处理器芯片逻辑上的程序存储器区域(Code区)映射了几个物理存储器,设计为Code区逻辑地址是不连续的,也就是说不是所有的程序存储器地址都可以访问取指,会有一些无法存放代码和取指执行的保留区域存在,如果用户程序代码中出现跳转或顺序执行程序语句进入保留区域的地址范围,就会产生不可屏蔽越界中断,芯片会进入复位、中断等异常状态。仿真器上,停止全速执行用户程序、遇到断点停止执行、单步执行完一条用户程序语句后,集成开发环境都会自动下发一连串获取当前芯片状态的指令给仿真器,包括存储器(如果集成开发环境上打开了存储器窗口)、通用和特殊寄存器、程序执行指针(PC指针)等。仿真器会保存出当前用户程序的程序指针(PC)值。仿真芯片从用户程序切换到继续执行监控程序,PC值也继续增加,读取出所需的数据返回给集成开发环境,显示在集成开发环境的界面上。由于执行监控程序,仿真芯片的PC值增加了,完成后仿真器会把之前保存的PC值取出填充回仿真芯片的程序指针寄存器内,恢复到停止执行用户程序时的PC值,以保证用户继续运行用户程序时,从上次停止运行处开始运行。如此,当仿真器停止执行用户程序时,停止的用户程序语句PC值接近了Code区的某个保留区域(例如Code保留区地址范围8000H-8FFFH,正常可用Code区0H-7FFFH,9000H-FFFFH,用户程序执行停止在7FFFH处等),切换执行监控程序后,PC值继续增加,就会跨入保留区域对应的地址区域范围内,就会产生不可屏蔽越界中断,导致监控程序不能继续执行或执行异常,无法返回正常的芯片状态数据给集成开发环境,集成开发环境报错或出现异常的芯片状态信息,同时,由于产生了不可屏蔽越界中断,破坏了仿真芯片停止运行用户程序时的状态,无法继续执行用户程序。由于集成开发环境打开的窗口类型和数量差异,需要导出的数据内容和数量也有差异,对应需要执行的监控程序代码量也是不确定的,并不是一个固定值,故而无法预期并调整仿真芯片设计上Code保留区域范围来完全避开所述问题。现有仿真器一般采用修改Code区保留区域大小,保证监控程序执行带来的PC值增加不会跨入保留区域产生不可屏蔽越界中断,或者不允许用户程序在接近保留区域处停止执行等方式解决。但是,这些方法或者影响了仿真器与产品芯片的一致性,或者影响了易用性和使用感受,都不是很理想。
技术实现思路
本专利技术要解决的技术问题是提供一种处理器芯片仿真器,能够保证仿真器与产品芯片的一致性,同时不影响仿真器的使用感受和易用性,提高用户程序的开发调试效率。为解决上述技术问题,本专利技术的处理器芯片仿真器,包括:仿真芯片,监控模块,监控程序存储器以及安装在用户电脑上的集成开发环境软件;所述仿真芯片通过标准的访问程序区的数据/地址总线与监控程序存储器连接;所述监控模块通过模式控制信号线与仿真芯片连接,通过调试接口通道与所述集成开发环境软件进行信息传送;所述仿真芯片模拟产品芯片所有功能,内置或外挂用户存储存储器,用户存储器内Code区的保留区域设置与产品芯片一致,用户程序执行进入保留区域时会产生不可屏蔽越界中断;所述仿真芯片有用户模式和监控模式两种工作状态,在用户模式下,仿真芯片从用户程序存储器取指执行用户程序;在监控模式下,仿真芯片通过数据/地址总线从所述监控程序存储器读取和执行监控程序,不取指执行用户程序,且PC值跨越进入Code区保留区域地址范围时不产生不可屏蔽越界中断。采用本专利技术的仿真器能真实模拟产品芯片Code区内保留区域大小和用户程序执行进入保留区域时产生不可屏蔽越界中断,保持与产品芯片相同功能。同时,在停止执行用户程序语句的PC值接近了Code区保留区域时,仍能正常导出所需芯片状态数据,且不会触发不可屏蔽越界中断,不会改变停止运行用户程序时的仿真芯片状态。方便了用户程序的开发和调试,有助于提高代码开发效率。附图说明下面结合附图和具体实施方式对本专利技术作进一步详细的说明:图1是所述处理器芯片仿真器结构示意图。具体实施方式如图1所示,所述处理器芯片仿真器1,包括:仿真芯片2,监控模块3,监控程序存储器4以及安装在用户电脑上的集成开发环境软件5。所述仿真芯片2通过标准的访问程序区的数据/地址总线6与监控程序存储器4连接。所述监控模块3通过模式控制信号线7与仿真芯片2连接,通过调试接口通道8与用户电脑上的集成开发环境软件5进行信息传送。所述仿真芯片2能模拟产品芯片所有功能,仿真芯片2内置或外挂用户存储存储器,用户存储器内Code区的保留区域设置与产品芯片一致,用户程序执行进入保留区域时会产生不可屏蔽越界中断。所述仿真芯片2有用户模式和监控模式两种工作状态,用户模式下,仿真芯片2从用户程序存储器取指执行用户程序;监控模式下,仿真芯片2通过数据/地址总线6从所述监控程序存储器4读取和执行监控程序,不取指执行用户程序,且PC值跨越进入Code区保留区域地址范围时不产生不可屏蔽越界中断。所述监控模块3通过模式控制信号7控制仿真芯片2处于用户模式或监控模式。所述集成开发环境5通过调试接口8向监控模块下发各种调试指令接收响应。这样,所实现的仿真器1全速执行用户程序时,能够真实模拟产品芯片Code区内保留区域大小和用户程序执行进入保留区域时产生不可屏蔽越界中断的功能。在停止执行用户程序语句的PC值接近了Code区保留区域时,监控模块3控制仿真芯片2进入监控模式,仿真芯片2从监控程序存储器4取指执行监控程序,首先保存停止执行用户程序时的PC值,然后导出芯片状态数据由监控模块3返回给集成开发环境软件5显示在界面上。监控程序执行过程中,即使PC值增加跨越进入Code区保留区域地址范围内,由于处于监控模式,仿真芯片2也不会产生不可屏蔽越界中断,执行完成后,仿真芯片2的PC值恢复到停止执行用户程序时保存的PC值,监控模块3控制仿真芯片2回到用户模式,可以继续执行用户程序。除了上述实现方法外,所述监控程序存储器4也可采用通过扫描链直接向仿真芯片2的处理器塞入监控程序语句的方式替代。以上通过具体实施方式对本专利技术进行了详细的说明,但这些并非构成对本专利技术的限制。在不脱离本专利技术原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本专利技术的保护范围。本文档来自技高网...
【技术保护点】
一种处理器芯片仿真器,其特征在于,包括:仿真芯片,监控模块,监控程序存储器以及安装在用户电脑上的集成开发环境;所述仿真芯片通过标准的访问程序区的数据/地址总线与监控程序存储器连接;所述监控模块通过模式控制信号线与仿真芯片连接,通过调试接口通道与所述集成开发环境软件进行信息传送;所述仿真芯片模拟产品芯片所有功能,仿真芯片内置或外挂用户存储存储器,用户存储器内程序存储器区域的保留区域设置与产品芯片一致,用户程序执行进入保留区域时会产生不可屏蔽越界中断;所述仿真芯片有用户模式和监控模式两种工作状态,在用户模式下,仿真芯片从用户程序存储器取指执行用户程序;在监控模式下,仿真芯片通过数据/地址总线从所述监控程序存储器读取和执行监控程序,不取指执行用户程序,且PC值跨越进入Code区保留区域地址范围时不产生不可屏蔽越界中断。
【技术特征摘要】
1.一种处理器芯片仿真器,其特征在于,包括:仿真芯片,监控模块,监控程序存储器以及安装在用户电脑上的集成开发环境;所述仿真芯片通过标准的访问程序区的数据/地址总线与监控程序存储器连接;所述监控模块通过模式控制信号线与仿真芯片连接,通过调试接口通道与所述集成开发环境软件进行信息传送;所述仿真芯片模拟产品芯片所有功能,仿真芯片内置或外挂用户存储存储器,用户存储器内程序存储器区域的保留区域设置与产品芯片一致,用户程序执行进入保留区域时会产生不可屏蔽越界中断;所述仿真芯片有...
【专利技术属性】
技术研发人员:许国泰,
申请(专利权)人:上海华虹集成电路有限责任公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。