当前位置: 首页 > 专利查询>东华大学专利>正文

一种仿真运行时RAM和寄存器变化动画生成方法技术

技术编号:21891114 阅读:31 留言:0更新日期:2019-08-17 14:12
本发明专利技术涉及一种仿真运行时RAM和寄存器变化动画生成方法。本发明专利技术旨在嵌入式系统程序软件仿真过程中实时记录仿真程序执行位置(通过PC值)及仿真过程中寄存器和RAM等存储区域的值,并合成动画视频,进而可以直观查看程序执行过程中指令对寄存器及RAM产生的影响,有效帮助嵌入式系统的教学和培训过程学生理解和掌握相关指令。本发明专利技术使用方便,每次只需输入程序和指定的参数即可获得嵌入式系统系统程序单步调试过程中RAM及寄存器等变化视频,大大减少了使用者手动对比花费的时间,进而方便初学者对于程序的理解,便于程序错误查找和效果检验,对于开展学培训具有辅助意义。

A Method of Generating RAM and Register Change Animation in Runtime Simulation

【技术实现步骤摘要】
一种仿真运行时RAM和寄存器变化动画生成方法
本专利技术涉及嵌入式系统学习
,特别是涉及一种生成指令执行过程对寄存器及RAM影响的动画的方法。
技术介绍
学习汇编语言是学习嵌入式系统(尤其是单片机)应用一个十分重要的环节,如何有效理解程序执行及其对寄存器和RAM的影响,是初学者学习汇编语言至关重要的一个部分。然而由于嵌入式系统硬件结构等原因,不易观察嵌入式系统内部的RAM状态的改变。部分编译仿真软件提供了寄存器和RAM的动态显示功能。然而这些编译仿真软件并未提供RAM中一条指令执行前后RAM区域的对比功能,同时RAM区域较大。如果每执行一条指令,使用者与指令执行前的RAM区域手动进行对比,找到变化区域将会花费使用者大量的时间和精力,且容易出现漏看和错看等现象,并不能很好的满足初学者学习的要求。
技术实现思路
本专利技术的目的是:可以直观查看采用汇编语言编制的程序执行过程中指令对寄存器及RAM产生的影响。为了达到上述目的,本专利技术的技术方案是提供了一种仿真运行时RAM和寄存器变化动画生成方法,其特征在于,包括以下步骤:步骤1、选择运行程序的芯片、仿真运行程序文件、编译仿真软件、仿真时长、最多执行步数、RAM的监控范围、RAM显示区域大小;步骤2、打开编译仿真软件后新建步骤1指定的芯片的工程,加载待仿真运行的程序文件,编译链接;步骤3、设置步数计数N的初始值为0,并开始计时,设置编译仿真软件的显示界面,使得编译仿真软件能够显示寄存器及RAM数据区,RAM数据区显示在默认位置,根据设置调整RAM数据区的显示区域大小;步骤4、控制编译仿真软件执行一步,步数计数N加一;步骤5、截取编译仿真软件显示的寄存器区域图片及RAM区域图片,将寄存器区域图片保存为前缀N_Register的图片文件,定义为N_Register图像,RAM区域内容根据设置的RAM显示区域大小分批显示,并依次截图,依次将截图得到的图片的前缀命名为N_0001至N_000n,定义为N_0001至N_000n图像,将N_0001至N_000n图像按从小到大顺序合成为前缀名为N_RAM的图像文件,定义为N_RAM图像;步骤6、若当前步骤不为第一步,则将当前步骤的N_Register图像及N_RAM图像与上一步获得的N_Register图像及N_RAM图像做比较,获得图像差异位置,并在当前步骤的N_Register图像及N_RAM图像上标记差异之处;若当前步骤为第一步,则进入步骤7;步骤7、利用OCR技术从N_Register图像获得当前PC值,并记录当前PC指针值为N_PC;步骤8、判断执行步骤数是否达标或执行时间是否达标,是则执行下一步,否则执行步骤4;步骤9、生成程序图程序图包括指令地址、指令机器码、指令,依次顺序排列,其中,指令通过指定的代码文件导入;通过查询指令表找到指令的机器码;通过ORG伪指令和指令的字节长度,计算出相应指令的起始地址,之后生成程序图;步骤10、视频合成将程序图、带标记的N_Register图像及N_RAM图像合并为一张图片N_Compound图像,并在与N_PC值相等的指令地址位置前加实线箭头,并加粗显示该指令,以及与上一条PC值相等的指令地址位置加上虚线的箭头,如果PC值未改变或为执行第一条指令时则不显示虚线的箭头,以每秒30帧的方式合成视频,其中第N秒的30帧均为对应的N_Compound图像。本专利技术旨在嵌入式系统程序软件仿真过程中实时记录仿真程序执行位置(通过PC值)及仿真过程中寄存器和RAM等存储区域的值,并合成动画视频,进而可以直观查看程序执行过程中指令对寄存器及RAM产生的影响,有效帮助嵌入式系统的教学和培训过程学生理解和掌握相关指令。用户在使用本专利技术时只需输入指定的代码文件和硬件参数,本专利技术通过虚拟按键和鼠标等操作,完成工程建立、启动调试仿真、单步调试、寄存器和RAM区域截取,对比每一步执行,前后寄存器和RAM的差异,并标识处差异之处,并合并完成输出最后的动画。由于采用了上述的技术方案,本专利技术与现有技术相比,具有以下的优点和积极效果:本专利技术使用方便,每次只需输入程序和指定的参数即可获得嵌入式系统系统程序单步调试过程中RAM及寄存器等变化视频,大大减少了使用者手动对比花费的时间,进而方便初学者对于程序的理解,便于程序错误查找和效果检验,对于开展学培训具有辅助意义。附图说明图1为本专利技术的工作的流程图;图2为本专利技术的系统参数设置界面;图3为本专利技术的实施例的指令未执行时的合成图像;图4为本专利技术的实施例的执行一条指令后合成图像;图5为本专利技术的实施例的执行二条指令后合成图像;图6为本专利技术的实施例的执行三条指令后合成图像。具体实施方式下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本专利技术旨在嵌入式系统程序软件仿真过程中实时记录仿真程序执行指令位置(通过PC值)和机器码及仿真过程中寄存器及RAM等存储区域的值,并合成动画视频,进而可以直观查看程序执行过程中指令对寄存器及RAM产生的影响,有效帮助嵌入式系统的教学和培训过程学生理解和掌握相关指令。作为优选,本专利技术选用的编译仿真软件为keil软件。具体实现流程如图1所示。详细说明如下:本专利技术提供的一种仿真运行时RAM和寄存器变化动画生成方法包括以下步骤:步骤1:打开对比系统,选择参数设置界面,如图2。设置参数包括选择芯片、仿真运行程序文件名称及路径、仿真时长和最多执行步数、RAM的监控范围、RAM显示区域大小。步骤2:系统自动打开编译仿真软件新建指定芯片的工程,加载程序文件,编译链接。步骤3:系统自动设置步数计数N初始值为0,并开始计时。设置编译仿真软件的显示界面,使得编译仿真软件能够显示寄存器及memory数据区,memory数据区显示在默认位置,根据设置调整memory数据区显示区域大小(比如每行显示8字节,显示16行)。步骤4:系统通过虚拟按键和鼠标控制编译仿真软件执行一步,步数计数N加一。步骤5:系统自动截取寄存器、RAM区域图片。截取寄存器区域,保存为前缀N_Register的图片文件,定义为N_Register图像。RAM区域内容根据设置的RAM显示区域大小分批显示,并依次截图,依次将截图得到的图片的前缀命名为N_0001至N_000n,定义为N_0001至N_000n图像,将N_0001至N_000n图像按从小到大顺序合成为前缀名为N_RAM的图像文件,定义为N_RAM图像;步骤6:系统分别对比当前步骤N步与上一步骤N-1步的N_Register图像和N_RAM图像的差异(如果N为第一步则忽略当前步骤);并在N_Register图像和N_RAM图像上标记差异之处。步骤7:系统利用OCR技术从N_Register图像获得当前PC值,并记录当前PC指针值为N_PC。步骤8:执行步骤数是否达标或执行时间达标则执行下一步,否则执行步骤4。步骤9:生成程序图。程序图包括指令地址,指令机器码,指令。依次顺序排列。其中指令通过指定的代码文件导入(去除代码文件中的空行,多余的空格符号)。本文档来自技高网...

【技术保护点】
1.一种仿真运行时RAM和寄存器变化动画生成方法,其特征在于,包括以下步骤:步骤1、选择运行程序的芯片、仿真运行程序文件、编译仿真软件、仿真时长、最多执行步数、RAM的监控范围、RAM显示区域大小;步骤2、打开编译仿真软件后新建步骤1指定的芯片的工程,加载待仿真运行的程序文件,编译链接;步骤3、设置步数计数N的初始值为0,并开始计时,设置编译仿真软件的显示界面,使得编译仿真软件能够显示寄存器及memory数据区,memory数据区显示在默认位置,根据设置调整memory数据区的显示区域大小;步骤4、控制编译仿真软件执行一步,步数计数N加一;步骤5、截取编译仿真软件显示的寄存器区域图片及RAM区域图片,将寄存器区域图片保存为前缀N_Register的图片文件,定义为N_Register图像,RAM区域内容根据设置的RAM显示区域大小分批显示,并依次截图,依次将截图得到的图片的前缀命名为N_0001至N_000n,定义为N_0001至N_000n图像,将N_0001至N_000n图像按从小到大顺序合成为前缀名为N_RAM的图像文件,定义为N_RAM图像;步骤6、若当前步骤不为第一步,则将当前步骤的N_Register图像及N_RAM图像与上一步获得的N_Register图像及N_RAM图像做比较,获得图像差异位置,并在当前步骤的N_Register图像及N_RAM图像上标记差异之处;若当前步骤为第一步,则进入步骤7;步骤7、利用OCR技术从N_Register图像获得当前PC值,并记录当前PC指针值为N_PC;步骤8、判断执行步骤数是否达标或执行时间是否达标,是则执行下一步,否则执行步骤4;步骤9、生成程序图程序图包括指令地址、指令机器码、指令,依次顺序排列,其中,指令通过指定的代码文件导入;通过查询指令表找到指令的机器码;通过ORG伪指令和指令的字节长度,计算出相应指令的起始地址,之后生成程序图;步骤10、视频合成将程序图、带标记的N_Register图像及N_RAM图像合并为一张图片N_Compound图像,并在与N_PC值相等的指令地址位置前加实线箭头,并加粗显示该指令,以及与上一条PC值相等的指令地址位置加上虚线的箭头,如果PC值未改变或为执行第一条指令时则不显示虚线的箭头,以每秒30帧的方式合成视频,其中第N秒的30帧均为对应的N_Compound图像。...

【技术特征摘要】
1.一种仿真运行时RAM和寄存器变化动画生成方法,其特征在于,包括以下步骤:步骤1、选择运行程序的芯片、仿真运行程序文件、编译仿真软件、仿真时长、最多执行步数、RAM的监控范围、RAM显示区域大小;步骤2、打开编译仿真软件后新建步骤1指定的芯片的工程,加载待仿真运行的程序文件,编译链接;步骤3、设置步数计数N的初始值为0,并开始计时,设置编译仿真软件的显示界面,使得编译仿真软件能够显示寄存器及memory数据区,memory数据区显示在默认位置,根据设置调整memory数据区的显示区域大小;步骤4、控制编译仿真软件执行一步,步数计数N加一;步骤5、截取编译仿真软件显示的寄存器区域图片及RAM区域图片,将寄存器区域图片保存为前缀N_Register的图片文件,定义为N_Register图像,RAM区域内容根据设置的RAM显示区域大小分批显示,并依次截图,依次将截图得到的图片的前缀命名为N_0001至N_000n,定义为N_0001至N_000n图像,将N_0001至N_000n图像按从小到大顺序合成为前缀名为N_RAM的图像文件,定义为N_RAM图像;步骤6、若当前步骤不为第一步,则...

【专利技术属性】
技术研发人员:陈广锋周敏飞项胤于海燕李艳
申请(专利权)人:东华大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1