一种基于UBQ-SIMTest框架的龙芯1E300模拟器
文献发布时间:2024-04-18 19:58:26
技术领域
本发明涉及一种基于UBQ-SIMTest框架的龙芯1E300模拟器,属于全数字化仿真技术领域。
背景技术
在嵌入式软件的开发、调试、验证等阶段中,都需要有相应的硬件环境的支持。但是在大多数情况下,搭建一套硬件环境的成本较高,外围环境搭建复杂,经常导致硬件环境不足以提供开发和测试人员使用的情况。
发明内容
有鉴于此,本发明提供一种基于UBQ-SIMTest框架的龙芯1E300模拟器,其以数字化仿真系统为基础,仿真出了龙芯1E300芯片的所有功能,实现嵌入式软件调试、测试、验证的一体化解决方案,以解决上述背景技术提出的问题。
本发明提供一种基于UBQ-SIMTest框架的龙芯1E300模拟器,其包括UBQ-SIMTestUI、UBQ-SIMTest FrameWork模块、龙芯1E300模拟器、gdbIF、gdb;
所述UBQ-SIMTest UI提供一套人机交互界面,对模拟的运行状态进行控制;
所述UBQ-SIMTest FrameWork模块用于对接UI以及龙芯1E300模拟器以及对接gdb;
所述龙芯1E300模拟器包括cpuIF,Simulator Manager,龙芯1E300仿真芯片;
所述cpu IF用于在龙芯1E300的仿真芯片上实现UBQ-SIMTest架构规定的接口功能;
所述Simulator Manager用于负责管理模拟器的状态,仿真芯片各部分的加载以及释放;
所述龙芯1E300仿真芯片用于实现了龙芯1E300芯片的处理器内核以及各种片上外设;
所述gdbIF用于对gdb命令调用的封装,对测试程序进行调试;
所述gdb通过远程调试的方式,连接龙芯1E300芯片内的gdbserver,对测试程序进行调试。
优选的,所述人机交互界面显示模拟器的内存数据,寄存器数据,以及控制按钮。
所述UBQ-SIMTest FrameWork模块对接UI以及龙芯1E300模拟器,将用户通过UI进行的操作转换为接口调用的形式下发到龙芯1E300模拟器继续执行,然后将龙芯1E300模拟器返回的数据上传到UI端进行显示。
所述UBQ-SIMTest FrameWork模块对接gdb,用户需要进行调试时,通过gdbif来控制gdb对测试程序进行调试。
所述UBQ-SIMTest架构规定的接口功能包括模拟器初始化,模拟器运行,模拟器停止,内存地址读写,寄存器读写,设置内存监视,保存加载快照。
所述gdbIF对gdb命令调用的封装,使FrameWork可以通过接口调用的形式来操作gdb,对测试程序进行调试。
所述龙芯1E300仿真芯片包括1E300仿真芯片片上外设模拟、龙芯1E300仿真芯片指令集解析模块、龙芯1E300仿真芯片内存、龙芯1E300仿真芯片寄存器、gdbserver。
本发明的有益效果:
本发明提供一种基于UBQ-SIMTest框架的龙芯1E300模拟器,其运行于真实环境上的嵌入式软件,可以不加修改直接在数字化平台上运行,并且其运行的动态特性与在真实环境上一致,在数字化平台中利用虚拟目标机代替了真实目标机;并且由于虚拟目标机和仿真软件以及测试软件都是在主机上运行的软件,有效解决嵌入式软件测试受限于硬件测试环境可用性的问题。
附图说明
图1为本发明一种基于UBQ-SIMTest框架的龙芯1E300模拟器的整体结构示意图。
图2为本发明一种基于UBQ-SIMTest框架的龙芯1E300体系结构示意图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
本发明提供一种基于UBQ-SIMTest框架的龙芯1E300模拟器,其包括UBQ-SIMTestUI、UBQ-SIMTest FrameWork模块、龙芯1E300模拟器、gdbIF、gdb;
所述UBQ-SIMTest UI提供一套人机交互界面,对模拟的运行状态进行控制;
所述UBQ-SIMTest FrameWork模块用于对接UI以及龙芯1E300模拟器以及对接gdb;
所述龙芯1E300模拟器包括cpuIF,Simulator Manager,龙芯1E300仿真芯片;
所述cpuIF用于在龙芯1E300的仿真芯片上实现UBQ-SIMTest架构规定的接口功能;
所述Simulator Manager用于负责管理模拟器的状态,仿真芯片各部分的加载以及释放;
所述龙芯1E300仿真芯片用于实现了龙芯1E300芯片的处理器内核以及各种片上外设;
所述gdbIF用于对gdb命令调用的封装,对测试程序进行调试;
所述gdb通过远程调试的方式,连接龙芯1E300芯片内的gdbserver,对测试程序进行调试。
人机交互界面显示模拟器的内存数据,寄存器数据,以及控制按钮。
UBQ-SIMTest FrameWork模块对接UI以及龙芯1E300模拟器,将用户通过UI进行的操作转换为接口调用的形式下发到龙芯1E300模拟器继续执行,然后将龙芯1E300模拟器返回的数据上传到UI端进行显示。
UBQ-SIMTest FrameWork模块对接gdb,用户需要进行调试时,通过gdbif来控制gdb对测试程序进行调试。
UBQ-SIMTest架构规定的接口功能包括模拟器初始化,模拟器运行,模拟器停止,内存地址读写,寄存器读写,设置内存监视,保存加载快照。
gdbIF对gdb命令调用的封装,使FrameWork可以通过接口调用的形式来操作gdb,对测试程序进行调试。
龙芯1E300仿真芯片包括1E300仿真芯片片上外设模拟、龙芯1E300仿真芯片指令集解析模块、龙芯1E300仿真芯片内存、龙芯1E300仿真芯片寄存器、gdbserver。
在使用时软件测试人员可以通过仿真软件UI界面操作整个仿真软件,控制1E300模拟器的运行状态,以及使用各种调试功能。在仿真软件UI界面1操作后,操作命令下达到仿真软件Framework层;仿真软件Framework层解析下达的命令,将其拆分为多个控制cpu的命令,然后通过cpu接口层,将命令传达到模拟器管理层;模拟器管理层根据当前模拟器的状态执行不同的动作,比如模拟器运行、内存数据读写等;执行内存数据读写命令时,模拟器管理层根据要读取或写入的地址在向龙芯1E300内存的指定地址中读取写入数据,然后通过cpu接口层返回给仿真软件Framework层,最终将结果展示在仿真软件UI界面上;执行模拟器运行指令时,模拟器管理层读取龙芯1E300寄存器中的某些寄存器,确定应该从哪个地址开始执行,然后在龙芯1E300内存中指定地址取得要执行的指令,将指令交给龙芯1E300指令集解析模块进行处理,执行相应的处理器动作。
该数字化仿真软件还提供了针对目标程序源码的调试功能,当在仿真软件UI界面选择调试模式时,操作命令下达到仿真软件Framework层,仿真软件Framework层解析下达的命令,将其拆分为多个控制gdb的命令,然后通过gdb接口层,将命令传达到mips架构的gdb,mips架构的gdb执行相应的调试动作,调试过程中如果需要操作龙芯1E300芯片,则mips架构的gdb将操作命令发送到GdbServer中去执行,执行后再将结果返回给mips架构的gdb;mips架构的gdb再将结果通过gdb接口层返回给仿真软件Frameworks层,最终将结果展示在仿真软件UI界面上。
上对本发明及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
- 一种基于龙芯平台的通信控制框架
- 一种灯座框架、灯座机构及地气光模拟器