一、序言
话说上回,我们已经实现了LINK1D的仿真配置,详情见本坛的这篇帖子《32位8051的SWD仿真,使用 USB Link1D 仿真器》,(网址如下:http://www.stcaimcu.com/forum.php?mod=viewthread&tid=210&extra=),那么这次我们就再来接着往下测试一下仿真的断点功能,变量监控和串口通信,毕竟link1D可是又有SWD接口,又有串口的,必须得给他用起来!!
话不多说,我们先来看试验过程和结果,首先烧录附件程序,然后下图这样接线:(S-TXD 连接P47,S-RXD连接P46,另外直接用送的下载线连接下载口!:lol)
试验结果如下图:可以看到KEIL 软件里进入了DEBUG模式,在图中箭头的位置打了个断点,程序500ms执行一次到这里暂停,在变量监控区添加了一个变量的监控,能显示当前的变量值。在ISP软件的串口那里也能显示一次串口2打印出去的信息。
二、使用步骤
1.参考上次的帖子,首先我们需要将 32G系列的芯片设置为仿真芯片,见上次的帖子的第六步,但是这里需要注意的是,我们的IRC时钟一定要和我们的程序一直,这里我们程序里写的是22.1184Mhz,所以制作仿真芯片的时候,切记这个IRC时钟要选22.1184再设置仿真芯片。
2.打开我们的附件的程序,这里我提供的程序是个最贱的LED闪烁+串口2通信的程序,程序如下。当然也可以改成你们自己的程序(切记切记如果仿真芯片设置的端口为P30/P31,那你的程序不能操作P30/P31接口)
3.这时候我们可以去ISP软件上打开我们的串口调试助手,选择我们的CDC2,当然找不到的话也可以先去设备管理器里看一下串口号。CDC1也是SWD口,我们这里要选择CDC2作为我们的串口去连接检测参数。
当然你要是觉得这个界面太复杂,你也可以打开单独的串口软件,打开方法见下图,点一下这你就能发现新大陆了哈哈!
4.编译成功没有问题之后,直接进入DEBUG模式,开始调试 4.1变量添加与监控:可以选择我们程序里的任意一个全局变量/寄存器,然后添加到变量监控区域,方便我们观察,具体的方法如下图:
4.2断点添加:在没有开始Run的时候,可以在可执行区域添加断点。
4.3变量在线修改:如下图一步一步的操作即可。
4.4更多功能等你动手来挖掘咯~
三、总结
这里就总结几个比较常用的功能,因为这个DEBUG模式非常强大,如果真要完整的赘述,可能写一万字论文都不在话下,所以这里就只展开几个常见好用的功能了哈,更多的你可以自行百度一下,网上详细的该模式的使用教程非常多。
可能很多人习惯了早期的51单片机,没有调试功能,所以喜欢用串口打印参数调试,虽然这样也有好处,下载完就能直接串口看结果,但是动态的去修改参数非常麻烦,且每个打印参数的地方都需要添加一行打印函数,非常麻烦。但是仿真可以很好的解决这个问题,哪里需要暂停哪里打个断点,甚至FLASH区域等都能字节在线监控,像调试FLASH模拟EEPROM的时候,如果写入和读取的步骤到底是哪个错了,你就可以直接监控FLASH的地址,看看写入结束之后,这个地址的数据是不是你的写入值,这不马上就知道问题在哪里了!
所以有条件的话,仿真真的要用起来,当然也说过串口下载完就能直接看结果,我一般喜欢下载完先串口去看几个关键步骤的结果,没问题就不进仿真模式了,有问题我再进仿真模式去查看数据是哪里出了问题!祝屏幕前的看客们能通过本帖有所守护,再给我点个赞哈~或者有什么功能不会的,欢迎在下面留言~:lol
|