一种基于arm内核51仿真器的仿真调试方法及系统的制作方法

文档序号:10697558阅读:418来源:国知局
一种基于arm内核51仿真器的仿真调试方法及系统的制作方法
【专利摘要】本发明提供了一种基于ARM内核51仿真器的仿真调试方法及系统,方法包括:ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则载入仿真驱动程序,并加载待仿真程序;捕获调试指令中的调试数据,并通过USB通信发送至ARM内核51仿真器;接收并控制待仿真测试目标硬件动作;动作产生外部数据,将外部数据转化成输入指令,并反馈至仿真驱动程序。本发明使用ARM内核,取代8051内核做仿真CPU,并且用WinUSB通信取代速度慢的串口和HID通信,并且仿真器驱动采用多线程加环形缓冲器算法设计,使其仿真速度得到了质的提高。而且,还打破待仿真程序的大小限制,能仿真所有硬件资源,同时扩展至2路串口仿真。
【专利说明】
一种基于ARM内核51仿真器的仿真调试方法及系统
技术领域
[0001]本发明涉及仿真调试技术领域,尤其涉及一种基于ARM内核51仿真器的仿真调试方法及系统。
【背景技术】
[0002]仿真器的功能和作用是用来调试程序和学习程序,查找程序中逻辑错误。仿真器提供了单步执行、多步执行、断点执行、全速执行等手段,可以将各寄存器和变量的实时数据显示出来,方便开发者查看各个寄存器和变量的执行情况,找出程序可能出现问题点。目前,51单片机仿真器均采用8051内核51单片机做仿真CPU,其存在以下缺陷:
1)基本都采用串口、USB转串口、USB-HID通讯,通信速度慢,影响仿真速度,无法实现USB BULK通讯;
2)当前采用的是片内调试模式,待仿真程序需要先加载到仿真器里面,所有其大小受当前仿真器可以用空间大小的限制,最大都只能仿真低于64KB的程序;
3)采用了片内调试模式,当前51仿真器仿真CPU都只能依赖8位的51内核的单片机当仿真CPU,8位CPU本身运行速度慢,容易造成超时断线的不稳定现象,影响仿真速度和仿真效果;
4)仿真器运行固件程序时,需要占用仿真器的一些资源,被固件程序占用了的硬件资源不能进行仿真。所以可仿真的硬件资源有局限性。
[0003]因此,现有技术还有待改进和发展。

【发明内容】

[0004]鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于ARM内核的51仿真器的仿真调试方法及系统,旨在解决现有技术中单片机仿真器仿真速度慢且造成超时断线的不稳定现象,待仿真程序受当前仿真CHJ可用空间大小限制,当前仿真器不能仿真所有的硬件资源,且无法仿真扩展增强性型号等问题。
[0005]为了达到上述目的,本发明采取了以下技术方案:
一种基于ARM内核51仿真器的仿真调试方法,其中,所述方法包括以下步骤:
A、ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序;
B、当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据;
C、ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作;
D、待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器; E、ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。
[0006]所述基于ARM内核51仿真器的仿真调试方法,其中,所述步骤B具体包括:
B1、实时检测单片机语言开发平台中的Debug调试按钮是否被按下;
B2、当检测到Debug调试按钮被按下时,则单片机语言开发平台进入模拟调试模式下,并与接口对接,并执行待仿真程序得到调试指令;
B3、根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据;
B4、由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据;
B5、通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。
[0007]所述基于ARM内核51仿真器的仿真调试方法,其中,所述步骤C具体包括:
C1、ARM内核51仿真器中USB模块接收打包后的调试指令及调试数据,并传输至RAM;
C2、RAM接收打包后的调试指令及调试数据,并保存;
C3、根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器;
C4、由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1 ;
C5、通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。
[0008]所述基于ARM内核51仿真器的仿真调试方法,其中,所述步骤D具体包括:
Dl、待仿真测试目标硬件动作产生外部数据;
D2、通过所述硬件资源将外部数据采集至ARM内核51仿真器中。
[0009]所述基于ARM内核51仿真器的仿真调试方法,其中,所述步骤E具体包括:
EU通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包;
E2、通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序;
E3、根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据;
E4、仿真驱动程序根据平台接口协议将指令数据传入单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。
[0010]—种基于ARM内核51仿真器的仿真调试系统,其中,包括:
加载模块,用于ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台中在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序;
第一通讯模块,用于当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据;
目标硬件控制模块,用于ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作;
第二通讯模块,用于待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器;
数据输入模块,用于ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。
[0011]所述基于ARM内核51仿真器的仿真调试系统,其中,所述第一通讯模块具体包括:
检测单元,用于实时检测单片机语言开发平台中的Debug调试按钮是否被按下;
对接执行单元,用于当检测到Debug调试按钮被按下时进入模拟调试模式,与单片机语言开发平台的接口对接,并执行待仿真程序得到调试指令;
第一捕获单元,用于根据单片机语言开发平台中的平台接口协议捕获调试指令中的调试数据;
第一打包单元,用于由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据;
第一 USB通讯单元,用于通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。
[0012]所述基于ARM内核51仿真器的仿真调试系统,其中,所述目标硬件控制模块具体包括:
第二 USB通讯单元,用于ARM内核51仿真器中USB模块接收打包后的调试指令及调试数据,并传输至RAM;
RAM存储单元,用于RAM接收打包后的调试指令及调试数据,并保存;
第一解析单元,用于根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器;
模拟映射单元,用于由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1;
传输控制单元,用于通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。
[0013]所述基于ARM内核51仿真器的仿真调试系统,其中,所述第二通讯模块具体包括: 外部数据产生单元,用于待仿真测试目标硬件动作产生外部数据;
采集单元,用于通过所述硬件资源将外部数据采集至ARM内核51仿真器中。
[0014]所述基于ARM内核51仿真器的仿真调试系统,其中,所述数据输入模块具体包括: 映射转化单元,用于通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包;
第三USB通讯单元,用于通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序;
第二解析单元,用于根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据;
结果显示单元,用于仿真驱动程序根据平台接口协议将指令数据传入在单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。
[0015]本发明所述的基于ARM内核51仿真器的仿真调试方法及系统,方法包括:ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序;当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;ARM内核51仿真器接收打包后的调试指令、调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令、调试数据,并根据调试指令、调试数据控制待仿真测试目标硬件动作;待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器;ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。本发明实现了通过传输速率较快的USB通信来传输数据,取代了串口和HID通信,提高了数据传输速率。而且,待仿真程序大小不受限制,并使用32位内核ARM作为仿真处理器,能进行大程序的仿真,且仿真速度快,同时支持2路串口仿真。
【附图说明】
[0016]图1为本发明所述基于ARM内核51仿真器的仿真调试方法较佳实施例的流程图。
[0017]图2为本发明所述基于ARM内核51仿真器的仿真调试系统较佳实施例的结构框图。
【具体实施方式】
[0018]本发明提供一种基于ARM内核51仿真器的仿真调试方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0019]请参考图1,其为本发明所述基于ARM内核51仿真器的仿真调试方法较佳实施例的流程图。如图1所示,所述基于ARM内核51仿真器的仿真调试方法,包括以下步骤:
步骤S100、ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序;
步骤S200、当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据;步骤S300、ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作;
步骤S400、待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器;
步骤S500、ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。
[0020]本发明的实施例中,首先,将单片机仿真器连接到待仿真测试目标硬件上。再次,打开KEIL开发环境,打开要调试仿真的C语言或者汇编程序(也即是待仿真程序)。在KEIL中点击Debug调试按钮,进入模拟调试模式时,KEIL软件会自动加载自主开发的PC端的D51.DLL动态库程序,D51.DLL动态库程序也即仿真驱动程序,该仿真驱动程序包采用多线程加环形缓冲器算法。此时,D51.DLL动态库程序马上启动USB通信机制(具体为WinUSB高速通信)连接单片机仿真器。由于单片机仿真器是通过USB通信机制与PC机进行通信、用ARM处理器做仿真CPU和高效PC端驱动程序,提高了整个系统通讯速率,克服了传统的8位机速度慢和串口速率慢和不稳定的缺陷。
[0021]KEIL开发平台提供了2种调试模式,一种是模拟调试模式,一种是片内调试模式。在模拟调试模式下,待仿真程序直接在开发平台上加载并运行。而片内调试模式,是将待仿真程序加载到仿真器内,在仿真器内运行。
[0022]本发明的基于ARM内核51仿真器包括I个32位ARM芯片(芯片中集成USB2.0通信模块、32KB的FLASH、6KB的RAM、37个GP1、ADC模块、DAC模块),I个PC端D51.DLL动态链接库程序(即仿真驱动程序)。
[0023 ]与现有技术相比,本发明的技术方案具有以下技术好处:
I)采用32位ARM处理器,ARM处理器的硬件资源丰富并且处理速度极快,在这个平台上,利用程序虚拟出I套51内核的特殊寄存器,把这套特殊寄存器与ARM的特殊寄存器建立映射关系,再加上ARM外设硬件和外围电路,将其模拟出I颗涵盖所有功能的51单片机,并对有些厂商的扩展增强性51单片机的资源也可以模拟出来。
[0024]2)PC端仿真驱动程序设计,采用模拟调试模式,开辟出新的构思和新的调试方法。进入模拟调试模式时,驱动程序被加载,不需要先把待仿真程序加载进仿真器,所有不依赖硬件仿真器程序空间大小,并且缩短进入调试的时间。数据处理中采用多线程加环形缓冲器的算法结构,让数据得到并行处理和并行执行,极大提高数据吞吐率。在ARM极快处理速度的情况下,配合使用USB2.0通信,再配合PC端仿真驱动的高效设计,让仿真器速度得到质的提高,整个仿真过程不停顿不卡顿不断线,使仿真效果得到革新。
[0025]具体实施时,基于ARM内核51仿真器中包括上位机模块(仿真驱动)、下位机模块(仿真器硬件)。上述两者的组合将实现以下2主要功能:
第一、捕获被KEIL软件打开待仿真程序里面各种调试数据。将捕获到的这些数据,通过USB通信传到下位机模块上,下位机模块接收到数据后,通过下位机模块的内程序进行数据解析,再通过PZ-51Tracker硬件设备控制待仿真测试目标硬件,从而到达到调试输出功能。
[0026]第二、PZ-51Tracker硬件设备捕获已经通过数据线连为一体的待仿真测试目标硬件上的各种外部数据。这些数据捕获进PZ-51Tracker硬件设备中,进行解析打包处理后,发给D51.DLL动态库程序中,D51.DLL接收到来自PZ-51Tracker硬件设备的数据后,再次拆包解析后,传入KEIL软件中,从而达到了仿真调试输入功能。
[0027]本发明的实施例,所述ARM内核51仿真器设置32位的ARM内核作为其处理器,打破了当前51仿真器仿真CPU只能依赖8位的51内核的单片机当仿真CPU的限制,将仿真速度提高了几十倍,改变了传统的51单片机仿真器CPU只能依赖8位的51内核的单片机当仿真CPU的缺陷。而且,仿真程序的大小不受限制,改变了传统51单片机仿真器受当前仿真CPU可用空间大小限制。同时本发明的单片机仿真器不占用串口资源,还还支持2路串口仿真,改变了当前51仿真器不能进行串口仿真的缺陷,当前51仿真器仿真时需要串口与KEIL需要通信,所有串口已经被占用。
[0028]进一步的,在所述基于ARM内核51仿真器的仿真调试方法中,所述步骤S200具体包括:
步骤S201、实时检测单片机语言开发平台中的Debug调试按钮是否被按下;
步骤S202、当检测到Debug调试按钮被按下时,则单片机语言开发平台进入模拟调试模式下,并与接口对接,并执行待仿真程序得到调试指令;
步骤S203、根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据;
步骤S204、由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据;
步骤S205、通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。
[0029]进一步的,在所述基于ARM内核51仿真器的仿真调试方法中,所述步骤S300具体包括:
步骤S301、ARM内核51仿真器中USB模块接收打包后的调试指令及调试数据,并传输至
RAM;
步骤S302、RAM接收打包后的调试指令及调试数据,并保存;
步骤S303、根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器;
步骤S304、由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1;
步骤S305、通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。
[°03°]进一步的,在所述基于ARM内核51仿真器的仿真调试方法中,所述步骤S400具体包括:
步骤S401、待仿真测试目标硬件动作产生外部数据;
步骤S402、通过所述硬件资源将外部数据采集至ARM内核51仿真器中。
[0031]进一步的,在所述基于ARM内核51仿真器的仿真调试方法中,所述步骤S500具体包括:
步骤S501、通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包;
步骤S502、通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序;步骤S503、根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据;
步骤S504、仿真驱动程序根据平台接口协议将指令数据传入单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。
[0032]本发明的实施例中采用USB2.0通信,而不是采用最原始的速度慢的串口通信。且单片机仿真器的CHJ采用I个32位ARM处理器,无需与现有技术一样采用2个8位51内核CPU和I个USB转串口芯片。在现有技术中,51单片机仿真器的内核由于只有最多64K程序空间,51单片机仿真器的CPU中先要内置仿真监控程序,其占用程序空间,因此最多只能仿真63K程序甚至更少,不能仿真大内存的程序。而本发明中的单片机仿真器的存储空间可根据需求定制,以适应不同大小内存的程序的仿真。
[0033]进一步的,在所述基于ARM内核51仿真器的仿真调试方法中,所述单片机语言开发平台为Keil C51。
[0034]可见,本发明实现了通过传输速率较快的USB通信来传输数据,取代了串口通信,提高了数据传输速率。而且,单片机仿真器中的内存空间扩大,能进行大程序的仿真。
[0035]基于上述方法实施例,本发明还提供了一种基于ARM内核51仿真器的仿真调试系统。如图2所示,所述基于ARM内核51仿真器的仿真调试,包括:
加载模块100,用于ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台中在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序;
第一通讯模块200,用于当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据;
目标硬件控制模块300,用于ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作;
第二通讯模块400,用于待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器;
数据输入模块500,用于ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。
[0036]进一步的,在所述基于ARM内核51仿真器的仿真调试系统中,所述第一通讯模块200具体包括:
检测单元,用于实时检测单片机语言开发平台中的Debug调试按钮是否被按下;
对接执行单元,用于当检测到Debug调试按钮被按下时进入模拟调试模式,与单片机语言开发平台的接口对接,并执行待仿真程序得到调试指令;
第一捕获单元,用于根据单片机语言开发平台中的平台接口协议捕获调试指令中的调试数据;
第一打包单元,用于由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据;
第一 USB通讯单元,用于通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。
[0037]进一步的,在所述基于ARM内核51仿真器的仿真调试系统中,所述目标硬件控制模块300具体包括:
第二 USB通讯单元,用于ARM内核51仿真器中USB模块接收打包后的调试指令、调试数据,并传输至RAM;
RAM存储单元,用于RAM接收打包后的调试指令、调试数据,并保存;
第一解析单元,用于根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器;
模拟映射单元,用于由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1;
传输控制单元,用于通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。
[0038]所进一步的,在所述基于ARM内核51仿真器的仿真调试系统中,所述第二通讯模块400具体包括:
外部数据产生单元,用于待仿真测试目标硬件动作产生外部数据;
采集单元,用于通过所述硬件资源将外部数据采集至ARM内核51仿真器中。
[0039]进一步的,在所述基于ARM内核51仿真器的仿真调试系统中,所述数据输入模块500具体包括:
映射转化单元,用于通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包;
第三USB通讯单元,用于通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序;
第二解析单元,用于根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据;
结果显示单元,用于仿真驱动程序根据平台接口协议将指令数据传入在单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。
[0040]综上所述,本发明所述的基于ARM内核51仿真器的仿真调试方法及系统,方法包括:ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台中载入仿真驱动程序,并加载待仿真程序;当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;ARM内核51仿真器接收打包后的调试指令、调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令、调试数据,并根据调试指令、调试数据控制待仿真测试目标硬件动作;待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器;ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。本发明实现了通过传输速率较快的WinUSB通信来传输数据,取代了串口和HID通信,提高了数据传输速率。而且,单片机仿真器大小不受限制并使用32位内核ARM作为处理器,能进行大程序的仿真,且仿真速度快,同时支持2路串口仿真。
[0041]可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及本发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
【主权项】
1.一种基于ARM内核51仿真器的仿真调试方法,其特征在于,所述方法包括以下步骤: A、ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序; B、当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据; C、ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作; D、待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器; E、ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。2.根据权利要求1所述基于ARM内核51仿真器的仿真调试方法,其特征在于,所述步骤B具体包括: B1、实时检测单片机语言开发平台中的Debug调试按钮是否被按下; B2、当检测到Debug调试按钮被按下时,则单片机语言开发平台进入模拟调试模式下,并与接口对接,并执行待仿真程序得到调试指令; B3、根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据; B4、由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据; B5、通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。3.根据权利要求2所述基于ARM内核51仿真器的仿真调试方法,其特征在于,所述步骤C具体包括: Cl、ARM内核51仿真器中USB模块接收打包后的调试指令及调试数据,并传输至RAM; C2、RAM接收打包后的调试指令及调试数据,并保存; C3、根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器; C4、由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1 ; C5、通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。4.根据权利要求3所述基于ARM内核51仿真器的仿真调试方法,其特征在于,所述步骤D具体包括: Dl、待仿真测试目标硬件动作产生外部数据; D2、通过所述硬件资源将外部数据采集至ARM内核51仿真器中。5.根据权利要求4所述基于ARM内核51仿真器的仿真调试方法,其特征在于,所述步骤E具体包括: El、通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包; E2、通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序; E3、根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据; E4、仿真驱动程序根据平台接口协议将指令数据传入单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。6.—种基于ARM内核51仿真器的仿真调试系统,其特征在于,包括: 加载模块,用于ARM内核51仿真器一端与待仿真测试目标硬件连接、另一端与PC机连接时,则通过PC机中的单片机语言开发平台中在模拟调试模式下,载入仿真驱动程序,并加载待仿真程序; 第一通讯模块,用于当检测到调试指令时,则根据单片机语言开发平台中的平台接口协议由仿真驱动程序捕获调试指令中的调试数据,将调试指令、及与调试指令对应的调试数据打包后通过USB通信发送至ARM内核51仿真器;其中,所述调试数据为寄存器数据或变量数据; 目标硬件控制模块,用于ARM内核51仿真器接收打包后的调试指令及调试数据,通过ARM内核51仿真器内的固件程序解析得到调试指令及调试数据,并根据调试指令及调试数据控制待仿真测试目标硬件动作; 第二通讯模块,用于待仿真测试目标硬件动作产生外部数据,并发送至ARM内核51仿真器; 数据输入模块,用于ARM内核51仿真器通过固件程序将所述外部数据转化成输入指令,并反馈至仿真驱动程序。7.根据权利要求6所述基于ARM内核51仿真器的仿真调试系统,其特征在于,所述第一通讯模块具体包括: 检测单元,用于实时检测单片机语言开发平台中的Debug调试按钮是否被按下; 对接执行单元,用于当检测到Debug调试按钮被按下时进入模拟调试模式,与单片机语言开发平台的接口对接,并执行待仿真程序得到调试指令; 第一捕获单元,用于根据单片机语言开发平台中的平台接口协议捕获调试指令中的调试数据; 第一打包单元,用于由多线程及环形缓冲器将调试指令及调试数据打包,得到打包后的调试指令及调试数据; 第一 USB通讯单元,用于通过单片机语言开发平台与ARM内核51仿真器建立的USB通信连接,将打包后的调试指令及调试数据发送至ARM内核51仿真器。8.根据权利要求7所述基于ARM内核51仿真器的仿真调试系统,其特征在于,所述目标硬件控制模块具体包括: 第二 USB通讯单元,用于ARM内核51仿真器中USB模块接收打包后的调试指令及调试数据,并传输至RAM; RAM存储单元,用于RAM接收打包后的调试指令及调试数据,并保存; 第一解析单元,用于根据Flash中存储的固件程序解析打包后的调试指令及调试数据,得到调试指令及调试数据,并传输至虚拟的51特殊寄存器; 模拟映射单元,用于由51特殊寄存器将ARM的GP1模拟成51外设的硬件资源,并将51特殊寄存器映射到ARM的特殊寄存器中;其中,硬件资源包括GP10/UART/EX0/EX1/CT0/CT1; 传输控制单元,用于通过硬件资源将调试指令及调试数据传输至待仿真测试目标硬件,并根据调试指令及调试数据控制待仿真测试目标硬件动作。9.根据权利要求8所述基于ARM内核51仿真器的仿真调试系统,其特征在于,所述第二通讯模块具体包括: 外部数据产生单元,用于待仿真测试目标硬件动作产生外部数据; 采集单元,用于通过所述硬件资源将外部数据采集至ARM内核51仿真器中。10.根据权利要求9所述基于ARM内核51仿真器的仿真调试系统,其特征在于,所述数据输入模块具体包括: 映射转化单元,用于通过51特殊寄存器与ARM的特殊寄存器之间的映射,将外部数据转化为51内核的输入指令数据包; 第三USB通讯单元,用于通过ARM内核51仿真器中USB模块将输入指令数据包传输至仿真驱动程序; 第二解析单元,用于根据多线程加环形缓冲器算法,将输入指令数据包解析得到的输入指令及输入数据,并由仿真驱动程序根据平台接口协议传入到单片机语言开发平台;其中,所述输入数据为寄存器数据或变量数据; 结果显示单元,用于仿真驱动程序根据平台接口协议将指令数据传入在单片机语言开发平台,在单片机语言开发平台中显示与输入指令相对应的输入数据。
【文档编号】G06F9/455GK106066809SQ201610455595
【公开日】2016年11月2日
【申请日】2016年6月20日 公开号201610455595.9, CN 106066809 A, CN 106066809A, CN 201610455595, CN-A-106066809, CN106066809 A, CN106066809A, CN201610455595, CN201610455595.9
【发明人】侯成
【申请人】深圳市普中科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1