软件仿真就是我们不需要连接开发板,用不到仿真器。启动文件的那部分代码涉及到寄存器的配置啊?那有没有配置成功,我们可以通过软仿真的方式来查看寄存器是否配置成功。
硬件仿真的情况: 比如你的程序有一个外部电平中断,那么使用软仿真的话,这个中断会永远进不去。
软件仿真的情况:比如我们编写某个算法,和外部输入无关,我们可以在软仿真下验证这个算法。
如何进行软件仿真:
第一步,我们需要修改工程属性,修改为软件仿真状态。
第二步:点击仿真按钮,软仿真状态下,不需要仿真器,但是无法下载程序,不能连接单片机,不能反映单片机内部的真实状态。
然后我们可以进入到仿真界面了。
这个时候,仿真的代码已经在全速运行了。
可以看到红框的地方在跑动。
那下面我们按一下暂停试试。
暂停以后,我们就可以看寄存器和变量了。
红色的地方表示寄存器里面的数据有更新了。现在我们先把程序复位到最初状态。
点复位,然后打一个断点,单步运行。
复位之后,寄存器里面的数据是0。
需要注意一下,仿真的代码不要放在中文路径。
停在这里的话,是不是w1 = #0x00e0。
然后,大家可以查看SFR里面的w1是不是被配置为#0x00e0
上面就是打断点查看寄存器的值。
然后大家可以单步运行。
点一下,就会跳到下一行了。这条语句运行之后是不是w0的值更新了。这就是单步调试的操作步骤。
下面我们再讲下,如果要查看变量,怎么看。
点红框所示的按钮,然后,如果有变量的话,可以双击添加需要查看的变量。仿真暂停之后就可以看到变量里面对应的值了。
这样就可以查看对应变量的值了。
要看结果,都需要暂停。
基本上仿真调试,会了刚才介绍的部分,就可以了。
找到这个界面。
打开之后,就可以看到这部分的把C代码编译成汇编了。
比如说,你用汇编和C编写了一段同样功能的程序,可以对比看下编译器编译出来的汇编代码和你写的汇编代码有什么区别。有的时候,汇编一句话就可以搞定,但是使用C编译成汇编的话,就会有好多句。