專利名稱:一種Java實現8位嵌入式CPU仿真運行環境的方法
技術領域:
本發明涉及一種通過Java實現8位嵌入式CPU仿真運行環境的方法,以直接執行專門為8位嵌入式CPU編寫的嵌入式程序代碼,其執行效果就像一個真實的8位嵌入式 CPU硬件一樣。
背景技術:
在工業、制造業等行業領域,廣泛采用嵌入式系統實現生產自動控制及過程自動化。嵌入式系統則大量采用8位嵌入式CPU環境(單片機),在為這些嵌入式系統開發程序時,運行跟蹤與調試都比較復雜,需要專用的硬件開發板等設備,成本較高,且不容易安裝部署,這為嵌入式系統的設計開發與維護帶來了較大困難。因此,能夠通過純軟件方式提供一個8位CPU嵌入式系統仿真環境并能夠正常執行嵌入式程序代碼以及提供跟蹤調試功能,成為了工業自動化領域提高系統開發及維護效能的關鍵點。在當前條件下,結合Java 優秀的跨平臺能力以及網絡功能,在Java虛擬機托管環境下,通過開發一個Java程序來模擬一個8位嵌入式CPU,即實現一個純軟件的8位CPU嵌入式仿真環境,不僅可以充分降低嵌入式系統的開發成本,更可利用網絡實現多人多機聯機協同開發調試,并在該仿真環境中直接運行嵌入式程序代碼,并對運行過程進行跟蹤調試,將虛擬化技術從x86硬件架構轉向嵌入式系統,使工業自動化系統的設計開發及運行維護都能在更為受控的環境中進行全過程的仿真。
發明內容
本發明所要解決的技術問題是提供一種Java實現8位嵌入式CPU仿真運行環境的方法,解決現有8位嵌入式系統的設計開發與維護困難的缺陷。為解決上述技術問題,本發明提供一種Java實現8位嵌入式CPU仿真運行環境的方法,所述仿真運行環境包括Java應用系統的虛擬機,其特征在于,包括以下步驟
步驟1、在所述虛擬機上,通過Java類文件分別生成8位嵌入式CPU系統的指令解釋器、虛擬處理器、虛擬內存、虛擬堆棧管理器、虛擬輸入輸出設備和Java圖形用戶界面;
指令解釋器,完成對嵌入式系統程序代碼的翻譯,轉換為與之對應等效的、能夠在 Java虛擬機內存中執行的Java功能代碼;
所述虛擬處理器,用于在虛擬機內存中模擬堆棧數據管理、輸入輸出設備管理; 所述虛擬內存,用于在虛擬機內存中模擬內存讀寫功能,模擬嵌入式系統內存的物理操作效果;
所述虛擬堆棧管理器,用于在虛擬機內存中模擬堆棧操作,模擬嵌入式系統堆棧的物理操作效果;
所述虛擬輸入輸出設備,用于在虛擬機內存中模擬輸入輸出設備讀寫,模擬嵌入式系統輸入輸出設備的物理操作效果;
所述Java圖形用戶界面,用于接收用戶輸入以及向用戶提供可視的操作結果;步驟2、用戶在所述虛擬機上輸入嵌入式系統程序代碼;
步驟3、所述指令解釋器讀取所述虛擬機內存,并順序逐條翻譯所述嵌入式系統程序代碼,分別得到8位嵌入式CPU指令,所述8位嵌入式CPU指令劃分為三種類型的指令內存讀寫指令、堆棧操作指令、輸入輸出設備指令;
步驟4、所述虛擬處理器調用所述虛擬內存,讀取所述指令棧,分別執行內存讀寫指令、 堆棧操作指令、輸入輸出設備指令;
當所讀取指令為內存讀寫指令,則調用所述虛擬內存進行虛擬內存讀寫操作, 當所讀取指令為堆棧操作指令,則調用所述虛擬堆棧管理器執行虛擬堆棧操作, 當所讀取指令為輸入輸出設備指令,則調用所述虛擬輸入輸出設備執行虛擬輸入輸出操作,
步驟5、所述擬虛擬內存數據讀寫操作、虛擬堆棧操作、虛擬輸入輸出操作的結果輸出到所述Java圖形用戶界面。所述8位嵌入式CPU指令解釋器,基于Hash表方式快速查找8位嵌入式CPU指令對應于虛擬處理器操作的Java代碼并執行。在所述步驟3中,所述指令解釋器對一條嵌入式系統程序代碼翻譯后,產生多條指令;所述指令解釋器對于所產生的多條指令,采用Java實現指令棧數據結構進行存儲管理。本發明的有益效果
本發明采用100%java開發的純軟件8位嵌入式CPU仿真運行環境,在標準PC中即可快速安裝部署,并可執行嵌入式程序代碼,為工業自動化嵌入式系統的設計開發及調試維護提供了低成本、高效率、可聯網協同操作的仿真環境。該仿真環境利用Java實現了基于堆棧方式的8位虛擬處理器、虛擬內存、虛擬輸入輸出設備等虛擬層硬件,具備嵌入式系統真實硬件的特性。該方法支持Windows/Linux/Unix操作系統環境,非常容易部署于PC以及利用Java網絡優勢通過網絡進行聯機調試,極大地提高嵌入式系統的設計開發與調試效率,廣泛適用于工業自動化嵌入式系統設計開發調試維護,是仿真開發與測試的有效技術手段。
下面結合附圖和具體實施方式
對本發明的技術方案作進一步具體說明。圖1為本發明的應用流程框圖。
具體實施例方式本方法首先在所述虛擬機上通過Java類文件分別生成8位嵌入式CPU系統的指令解釋器、虛擬處理器、虛擬內存、虛擬堆棧管理器、虛擬輸入輸出設備和Java圖形用戶界 指令解釋器完成對嵌入式系統程序代碼的翻譯,轉換為與之對應等效的、能夠在 Java虛擬機內存中執行的Java功能代碼。虛擬處理器,用于在虛擬機內存中模擬堆棧數據管理、輸入輸出設備管理;虛擬內存,用于在虛擬機內存中模擬內存讀寫功能,模擬嵌入式系統內存的物理操作效果;虛擬堆棧管理器,用于在虛擬機內存中模擬堆棧操作,模擬嵌入式系統堆棧的物理操作效果;虛擬輸入輸出設備,用于在虛擬機內存中模擬輸入輸出設備讀寫,模擬嵌入式系統輸入輸出設備的物理操作效果;Java圖形用戶界面,用于接收用戶輸入以及向用戶提供可視的操作結果。然后,通過圖形用戶界面接收用戶輸入的嵌入式系統程序代碼數據,并通過Java 實現的嵌入式系統指令集解釋器進行識別,如果是有效的嵌入式系統程序代碼,則逐條進行翻譯。翻譯過程采用內部Hash表方式快速查找對應的Java功能代碼并執行之。這些 Java功能代碼根據嵌入式系統指令集,分為虛擬內存讀寫指令、虛擬堆棧操作指令以及虛擬輸入輸出設備讀寫指令。所有指令全部通過Java實現的指令棧進行執行順序管理。虛擬內存、虛擬堆棧、虛擬輸入輸出設備這些虛擬層面上的硬件全部由Java虛擬機中的內存塊模擬出實際效果。在對虛擬層面上的指令操作由Java功能代碼執行完畢后,其內存中的數據即為仿真系統的指令運行結果,通過Java圖形用戶界面向用戶實現操作反饋。Java實現的指令棧同時檢查是否存在下一條嵌入式系統程序代碼,如果有則重復上述指令解釋執行過程,從而實現嵌入式系統程序的完整運行仿真效果。下面結合圖1對本發明應用作進一步描述。步驟(1)采用Java實現嵌入式系統指令集解釋器,指令集是有限的代碼集合,通過十六進制數對其進行一一編碼,并對應出等效的Java功能類方法,并通過Hash表方式實現映射及快速查找。步驟(2 )指令解釋器對用戶輸入的嵌入式系統程序代碼進行逐條翻譯。嵌入式系統程序代碼條數眾多,采用Java實現指令棧數據結構對其進行存儲管理。步驟(3)根據指令解釋器的翻譯結果,存在對內存讀寫指令、堆棧操作指令、輸入輸出設備指令三種執行模式,這些模式都由Java編程實現與之對應的Java類,并在虛擬機內存中進行對應的功能操作,模擬嵌入式系統硬件內存、堆棧、輸入輸出設備的物理操作效果。當所讀取指令為內存讀寫指令,則調用所述虛擬內存進行虛擬內存讀寫操作。當所讀取指令為堆棧操作指令,則調用所述虛擬堆棧管理器執行虛擬堆棧操作。當所讀取指令為輸入輸出設備指令,則調用所述虛擬輸入輸出設備執行虛擬輸入輸出操作。步驟(4)所有在Java虛擬機內存中執行的對應操作所產生的數據結果,即對應仿真環境中的虛擬嵌入式系統執行嵌入式程序代碼后得到的數據結果,該結果通過Java Swing實現的圖形用戶界面向用戶提供可視的結果反饋。步驟(5) Java實現的嵌入式系統程序解釋器將檢查指令棧中是否存在下一條待解釋的嵌入式系統程序代碼,如果存在,則重復執行上述仿真操作。步驟(6) Java虛擬機可通過標準輸出流將仿真系統運行的結果實時輸出,以實現對嵌入式仿真系統的運行跟蹤。最后所應說明的是,以上具體實施方式
僅用以說明本發明的技術方案而非限制, 盡管參照較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或者等同替換,而不脫離本發明技術方案的精神和范圍,其均應涵蓋在本發明的權利要求范圍當中。
權利要求
1.一種Java實現8位嵌入式CPU仿真運行環境的方法,所述仿真運行環境包括Java 應用系統的虛擬機,其特征在于,包括以下步驟步驟1、在所述虛擬機上,通過Java類文件分別生成8位嵌入式CPU系統的指令解釋器、虛擬處理器、虛擬內存、虛擬堆棧管理器、虛擬輸入輸出設備和Java圖形用戶界面;指令解釋器,完成對嵌入式系統程序代碼的翻譯,轉換為與之對應等效的、能夠在 Java虛擬機內存中執行的Java功能代碼;所述虛擬處理器,用于在虛擬機內存中模擬堆棧數據管理、輸入輸出設備管理; 所述虛擬內存,用于在虛擬機內存中模擬內存讀寫功能,模擬嵌入式系統內存的物理操作效果;所述虛擬堆棧管理器,用于在虛擬機內存中模擬堆棧操作,模擬嵌入式系統堆棧的物理操作效果;所述虛擬輸入輸出設備,用于在虛擬機內存中模擬輸入輸出設備讀寫,模擬嵌入式系統輸入輸出設備的物理操作效果;所述Java圖形用戶界面,用于接收用戶輸入以及向用戶提供可視的操作結果; 步驟2、用戶在所述虛擬機上輸入嵌入式系統程序代碼;步驟3、所述指令解釋器讀取所述虛擬機內存,并順序逐條翻譯所述嵌入式系統程序代碼,分別得到8位嵌入式CPU指令,所述8位嵌入式CPU指令劃分為三種類型的指令內存讀寫指令、堆棧操作指令、輸入輸出設備指令;步驟4、所述虛擬處理器調用所述虛擬內存,讀取所述指令棧,分別執行內存讀寫指令、 堆棧操作指令、輸入輸出設備指令;當所讀取指令為內存讀寫指令,則調用所述虛擬內存進行虛擬內存讀寫操作, 當所讀取指令為堆棧操作指令,則調用所述虛擬堆棧管理器執行虛擬堆棧操作, 當所讀取指令為輸入輸出設備指令,則調用所述虛擬輸入輸出設備執行虛擬輸入輸出操作,步驟5、所述擬虛擬內存數據讀寫操作、虛擬堆棧操作、虛擬輸入輸出操作的結果輸出到所述Java圖形用戶界面。
2.根據權利要求1所述的Java實現8位嵌入式CPU仿真運行環境的方法,其特征在于,所述8位嵌入式CPU指令解釋器,基于Hash表方式快速查找8位嵌入式CPU指令對應于虛擬處理器操作的Java代碼并執行。
3.根據權利要求1或2所述的Java實現8位嵌入式CPU仿真運行環境的方法,其特征在于,在所述步驟3中,所述指令解釋器對一條嵌入式系統程序代碼翻譯后,產生多條指令;所述指令解釋器對于所產生的多條指令,采用Java實現指令棧數據結構進行存儲管理。
全文摘要
一種Java實現8位嵌入式CPU仿真運行環境的方法,包括嵌入式系統程序代碼指令解釋器,基于對應Java功能代碼實現的虛擬嵌入式處理器、虛擬內存、虛擬堆棧管理器、虛擬輸入輸出設備。同時,還通過Java實現了一個嵌入式系統程序指令棧,用于對嵌入式系統程序的執行順序管理,最后通過Java圖形用戶界面向用戶提供可視化嵌入式系統仿真運行結果。該方法支持Windows/Linux/Unix操作系統環境,容易部署于PC以及利用Java網絡優勢通過網絡進行聯機調試,極大地提高嵌入式系統的設計開發與調試效率,廣泛適用于工業自動化嵌入式系統設計開發調試維護,是仿真開發與測試的有效技術手段。
文檔編號G06F9/455GK102508697SQ201110383389
公開日2012年6月20日 申請日期2011年11月25日 優先權日2011年11月25日
發明者張新 申請人:武漢鋼鐵(集團)公司