一種基于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
【發明人】侯成
【申請人】深圳市普中科技有限公司