KEIL软仿真技巧谈(1)

EIL软仿真技巧谈(1)

 

 

 

废话少说,接上一章,话说建立了仿真环境后,我们就可以实现软件仿真了。在仿真状态下View菜单有一堆东西:

头4个BAR都是普通的工具栏了。这里说一下Debug ToolBar,就是调试工具栏:

单片机复位
全速运行
运行中STOP
单步运行,可以进入函数内运行
单步运行,可以跳过函数
如果运行进某个函数,此键能直接跳出当前函数
运行到你的光标处
找回你的PC指针:当你的程序有好几个文件的时候,有时候你会不知道运行到哪里去了,按这个你就可以找会你的PC指针所在处了。
仿真记录,相信很少人用到,其实这个东西可以记录下你的仿真过程,然后回放。从回放的“录象”中你可以观察每条指令的状态,例如对应的运行时间,各个寄存器的值。个人觉得这个功能在调试OS的时候特有用:)
ASM代码和C代码之间的转换,这个也是NB的调试利器,一般隐藏的BUG在ASM下无所遁形。
WATCH窗口,如果你不知道什么叫watch窗口,那证明你以前一定没写过程序。
挺逗的功能,可以看到每个函数有多少条指令,和你已经运行了某个函数的百分之多少代码。我从来不用这个东西的,呵呵
串口显示窗,如果你的程序有串口程序,那么单片机串口的输出就显示在这个窗上,如果你要对单片机串口输入数据,就在串口窗上打字就是了。
Memory Window,存储器观察窗,这里可以看code,data,xdata对应的数据
各函数占用时间的比例,个人感觉用处不大,在全速运行的时候会动态显示,用来调试UC/OS的时候可以看到各个任务占用的时间比。不过你需要先把你要观察的函数添加到表上才可以用。
这个东东一般没用。

好了,上面一堆东西,还是具体说说比较复杂的吧,其它东西你用过就自然会的了。

1

仿真记录,这个在软件仿真的时候有,至于硬件仿真就看你仿真器是否支持咯。当你需要记录的时候,就按,运行一段时间了,就按,那么刚才运行过的整段程序就会重现你眼前:

 

你可以选择当前灰色区域的所有指令,窗口都会显示那条指令对应的寄存器值等信息。

2

观察变量窗,这里可以用来观察全局变量和局部变量的,不过要你预先手动添加。具体方法就是找到你要观察的变量,然后点右键添加进指定的WATCH窗口,如下图:

 

添加后打开WATCH窗口就看到你刚才的变量了:

显示的数制可以是十进制和十六进制的,只要你在当前变量上点右键选择:

3

Memory Window, 这里可以看到个存储器的值,只需要在窗口上敲你需要显示的变量区和地址:

不同的英文字头对应不同的区域
c: 代码区,也就是ROM
d: data区,就是片内RAM
x: xdata区,片外RAM

如果你想修改某个区的值,只需要点右键Modify Memory at xxx 就可以修改了:

 

唉,打字打到手软,贴图贴到累,这一章先到此为止。还不会用DEBUG工具栏的看完应该会用了吧~~~

 


RealView MDK具有强大的调试功能。正确使用这些调试功能可以更快更准地发现软件中存在的问题,其中有些调试小技巧并不是很引人注意,在实际工作中如果能注意并使用这些小技巧将大大方便我们工作。下面从Symbol窗口、逻辑分析仪和Watch窗口三个方面来介绍一下调试中的小技巧。

一、Symbol窗口

ymbol窗口可以查看虚拟寄存器和外围特殊寄存器的名称、地址、类型。当我们想要在内存窗口中查看外围寄存器的值时。是不是需要去手册上查一下这个寄存器的地址呢。答案是――可以,但有个更方便直接的方法,就是从Symbol窗口可以查到所有外围特殊寄存器的地址和类型。在调试时打开Symbol窗口的方法:单击MDK菜单View然后点击,在工程工作区左边即可看到该窗口,如下图。

二、逻辑分析仪

逻辑分析仪可以跟踪全局变量、虚拟寄存器和外围特殊寄存器的值。

1、我们可能需要将IO端口的数据寄存器某位的值在逻辑分析仪上显示出来。一种方法是在逻辑分析仪的Setup对话框里通过Mask来屏蔽那些不需要显示的位。还有一种更简单的方法,就是在寄存器名后面加上后缀“.位序”。比如A口有16个引脚。其对应的数据寄存器为PORTA(16位)。现在需要跟踪引脚7的值。则只需添加信号PORTA.7即可,系统会自动设置Mask值。 实际上,任何跟踪的信号,只要是整型数据都能使用上面提供的方法。这对于位显示非常直观,简捷。

2、当我们需要在逻辑分析仪中显示Symbol窗口中列出的虚拟寄存器和外围特殊寄存器的值时,没必要在Setup对话框中写出该信号的名称。只需将Symbol窗口的寄存器名直接拖到逻辑分析仪中即可。

三、Watch窗口

Watch窗口可以查看程序中全局变量的值并实时更新。也可查看外围特殊寄存器和虚拟寄存器的值。我们可以在Watch窗口中按F2然后将变量名敲进去,回车就可看到该变量的值,但更方便的方法是可以直接将选中的该变量或寄存器名直接拖到Watch窗口中。

 

注:调试窗口可以在View菜单下根据需要让其显示或隐藏。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keil Debug是指使用Keil件来进行单片机程序调试的过程。通过Keil Debug,开发人员可以通过件模拟调试或者硬件调试的方式来检测和修复程序中的错误以及进行功能验证。件调试可以通过对程序进行断点设置、单步执行以及查看变量等操作来定位问题所在,并通过调试工具提供的功能来验证程序的正确性。硬件调试则是通过连接仿真器等外部设备来实时监测程序的执行情况,以便更准确地定位和修复错误。总的来说,Keil Debug可以帮助开发人员更高效地开发和调试单片机程序。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [keil件调试(Debug仿真教程(件调试和硬件调试的区别)及常用调试按键详解](https://blog.csdn.net/weixin_51624736/article/details/128611549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [05-keil debug修复.zip](https://download.csdn.net/download/qq_42370504/11431992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值