CN102508697A - 一种Java实现8位嵌入式CPU仿真运行环境的方法 - Google Patents

一种Java实现8位嵌入式CPU仿真运行环境的方法 Download PDF

Info

Publication number
CN102508697A
CN102508697A CN2011103833899A CN201110383389A CN102508697A CN 102508697 A CN102508697 A CN 102508697A CN 2011103833899 A CN2011103833899 A CN 2011103833899A CN 201110383389 A CN201110383389 A CN 201110383389A CN 102508697 A CN102508697 A CN 102508697A
Authority
CN
China
Prior art keywords
virtual
java
instruction
memory
embedded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103833899A
Other languages
English (en)
Other versions
CN102508697B (zh
Inventor
张新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Wisco Green City Technology Development Co ltd
Original Assignee
Wuhan Iron and Steel Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Iron and Steel Group Corp filed Critical Wuhan Iron and Steel Group Corp
Priority to CN201110383389.9A priority Critical patent/CN102508697B/zh
Publication of CN102508697A publication Critical patent/CN102508697A/zh
Application granted granted Critical
Publication of CN102508697B publication Critical patent/CN102508697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种Java实现8位嵌入式CPU仿真运行环境的方法,包括嵌入式系统程序代码指令解释器,基于对应Java功能代码实现的虚拟嵌入式处理器、虚拟内存、虚拟堆栈管理器、虚拟输入输出设备。同时,还通过Java实现了一个嵌入式系统程序指令栈,用于对嵌入式系统程序的执行顺序管理,最后通过Java图形用户界面向用户提供可视化嵌入式系统仿真运行结果。该方法支持Windows/Linux/Unix操作系统环境,容易部署于PC以及利用Java网络优势通过网络进行联机调试,极大地提高嵌入式系统的设计开发与调试效率,广泛适用于工业自动化嵌入式系统设计开发调试维护,是仿真开发与测试的有效技术手段。

Description

一种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虚拟机可通过标准输出流将仿真系统运行的结果实时输出,以实现对嵌入式仿真系统的运行跟踪。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

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实现指令栈数据结构进行存储管理。
CN201110383389.9A 2011-11-25 2011-11-25 一种Java实现8位嵌入式CPU仿真运行环境的方法 Active CN102508697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110383389.9A CN102508697B (zh) 2011-11-25 2011-11-25 一种Java实现8位嵌入式CPU仿真运行环境的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110383389.9A CN102508697B (zh) 2011-11-25 2011-11-25 一种Java实现8位嵌入式CPU仿真运行环境的方法

Publications (2)

Publication Number Publication Date
CN102508697A true CN102508697A (zh) 2012-06-20
CN102508697B CN102508697B (zh) 2014-10-08

Family

ID=46220789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110383389.9A Active CN102508697B (zh) 2011-11-25 2011-11-25 一种Java实现8位嵌入式CPU仿真运行环境的方法

Country Status (1)

Country Link
CN (1) CN102508697B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445640A (zh) * 2016-10-20 2017-02-22 南京南瑞继保电气有限公司 一种嵌入式虚拟装置运行方法和系统
CN108519863A (zh) * 2018-04-12 2018-09-11 郑州云海信息技术有限公司 一种存储系统的io管理方法及装置
CN115421865A (zh) * 2022-09-14 2022-12-02 北京计算机技术及应用研究所 一种dsp c6713处理器指令集虚拟化仿真方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1283465A2 (en) * 2001-08-08 2003-02-12 Hewlett-Packard Company Transforming & caching computer programs
CN1877521A (zh) * 2006-06-30 2006-12-13 浙江大学 跨操作系统的嵌入式系统板级支持包的实现方法
CN101034351A (zh) * 2007-01-05 2007-09-12 浙江大学 一种基于构件的模拟器自动生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1283465A2 (en) * 2001-08-08 2003-02-12 Hewlett-Packard Company Transforming & caching computer programs
CN1877521A (zh) * 2006-06-30 2006-12-13 浙江大学 跨操作系统的嵌入式系统板级支持包的实现方法
CN101034351A (zh) * 2007-01-05 2007-09-12 浙江大学 一种基于构件的模拟器自动生成方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445640A (zh) * 2016-10-20 2017-02-22 南京南瑞继保电气有限公司 一种嵌入式虚拟装置运行方法和系统
WO2018072445A1 (zh) * 2016-10-20 2018-04-26 南京南瑞继保电气有限公司 一种嵌入式虚拟装置运行方法和系统
CN106445640B (zh) * 2016-10-20 2019-06-18 南京南瑞继保电气有限公司 一种嵌入式虚拟装置运行方法和系统
US10949242B2 (en) 2016-10-20 2021-03-16 Nr Electric Co., Ltd Development of embedded type devices and running method for embedded type virtual device and system
CN108519863A (zh) * 2018-04-12 2018-09-11 郑州云海信息技术有限公司 一种存储系统的io管理方法及装置
CN108519863B (zh) * 2018-04-12 2021-06-11 郑州云海信息技术有限公司 一种存储系统的io管理方法及装置
CN115421865A (zh) * 2022-09-14 2022-12-02 北京计算机技术及应用研究所 一种dsp c6713处理器指令集虚拟化仿真方法
CN115421865B (zh) * 2022-09-14 2023-04-28 北京计算机技术及应用研究所 一种dsp c6713处理器指令集虚拟化仿真方法

Also Published As

Publication number Publication date
CN102508697B (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
Corteggiani et al. Inception:{System-Wide} security testing of {Real-World} embedded systems software
CN102760098B (zh) 面向bit软件测试的处理器故障注入方法及其模拟器
Lin et al. Benchmark dalvik and native code for android system
CN103389939B (zh) 一种针对堆可控分配漏洞的检测方法及系统
CN101739333A (zh) 应用程序的调试方法、调试工具及调试装置
US20150339214A1 (en) Non-intrusive software verification
CN105204393A (zh) 基于虚核单片机的单片机生产研发工具及其实现方法
CN104364768A (zh) 确定运行时间仪表控制的状态
CN102081719A (zh) 基于动态污染传播的软件安全测试系统及方法
Pfaff et al. The pintos instructional operating system kernel
CN104881358A (zh) 一种程序仿真测试方法及系统
CN104899369A (zh) 一种利用perl脚本的仿真器多线程运行方法
Breivold et al. Virtualize for test environment in industrial automation
CN103942092A (zh) 一种支持LabView图形化编程的HLA协同仿真方法
CN102508697B (zh) 一种Java实现8位嵌入式CPU仿真运行环境的方法
Lai et al. Fast profiling framework and race detection for heterogeneous system
CN102541727B (zh) 一种程序调试方法及系统
CN103218250B (zh) 一种处理器模拟方法
CN102331961A (zh) 并行模拟多个处理器的方法及系统、调度器
Ren et al. A dynamic taint analysis framework based on entity equipment
CN112231165B (zh) 基于链接库注入和内存映射方式的内存故障模拟方法
Zhang et al. The design and implementation of virtual machine system in embedded softplc system
CN111897282B (zh) 一种基于x86平台的软plc系统
CN100507853C (zh) 双内核半实物仿真系统
CN103955424B (zh) 一种虚拟化嵌入式二进制软件缺陷检测系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120620

Assignee: Wuhan Iron & Steel Engineering Technology Group Communications Co., Ltd.

Assignor: Wuhan Iron & Steel (Group) Corp.

Contract record no.: 2015420000066

Denomination of invention: Method for realizing 8-bit embedded CPU (central processing unit) simulation running environment by aid of Java

Granted publication date: 20141008

License type: Exclusive License

Record date: 20150504

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171222

Address after: 430000 front of Qingshan District factory in Wuhan, Hubei Province

Patentee after: Wuhan Iron & Steel Engineering Technology Group Communications Co., Ltd.

Address before: 430080 Friendship Avenue, Hubei, Wuhan, No. 999

Patentee before: Wuhan Iron & Steel (Group) Corp.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 430000 gate 1, changqian, Qingshan District, Wuhan City, Hubei Province

Patentee after: Wuhan WISCO Green City Technology Development Co.,Ltd.

Address before: 430000 front of Qingshan District factory in Wuhan, Hubei Province

Patentee before: WUHAN STEELS ENGINEERING TECHNOLOGY GROUP TELECOMMUNICATION Co.,Ltd.