32系列的硬件SWD仿真-初学者写的学习心得
鉴于仿真驱动做了升级,有些仿真的步骤可以省略,所以开了升级版的仿真步骤贴(此贴是在冲哥原贴的基础上做的升级,冲哥原贴:STC32的硬件SWD仿真,使用STC-USB Link1D仿真器 - 编译器/仿真器/ISP下载/做自己的ISP/ID号加密/程序加密后传输 国芯论坛 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=210&extra=page%3D1,感谢冲哥的无私奉献!)
1.务必先去官网下载最新的STC-ISP软件,截止至目前最新版本是STC-ISP(6.91J),因为新版本会优化掉一些历史遗留问题,特别是仿真这块,STC-ISP(6.91J)的stcmon51仿真驱动程序版本已更新至v1.18,经内部反复测试已经非常稳定。(下载地址:工具软件-深圳国芯人工智能有限公司 https://www.stcai.com/gjrj)
插图1
2.将STC-USB Link1D连接电脑,然后添加STC仿真器的固件和芯片型号到KEIL中(此步骤建议在每次ISP下载软件更新时都重新添加一次,以免仿真驱动更新,另KEIL也建议装在C盘中)
插图2、3
3.建议手动更新一下固件,此时切记STC-USB Link1D仿真器不要连接我们的单片机!!(注意下这里的设置主控和清除数据两个步骤的操作顺序),成功更新固件或者清楚数据都会有相应的提示。
插图4、5
4.此时连接我们的单片机,然后进行如下的设置就可以通过ISP软件正常下载程序了。(注意一下这里的IRC频率一定要和程序里设置的主时钟一样!!)
插图6、7
5.如果提示下载成功但是板子上没有运行,原因是没有勾选下图的“在线下载完成后持续给目标芯片供电”选项,勾选后则能看到板子上面程序在运行。
插图8
6. 以上步骤为下载程序的步骤,旨在测试工具和芯片是否能正常使用。现在开始进行仿真的步骤,先设置为仿真芯片,STC32G12K128目前仅支持SWD仿真,选择型号后会默认使用SWD口进行仿真(STC32G8K64、STC32F以及后续出的STC32系列不仅支持SWD仿真也支持串口仿真,且串口仿真不占用用户的串口资源)。(这里选择了P3.0/3.1作为仿真端口,所以程序里不能出现任何占用3.0和3.1引脚的功能,此楼最后的仿真注意事项贴中也会说明,像什么USB-CDC之类的就先不要用了,先用点亮一个LED的程序进行测试,比较容易观察结果!)
插图9
7.成功制作完仿真芯片之后一定要去掉“当目标文件变化时自动装在并发送下载命令”的勾勾,或者关闭软件(后台一起关闭),不然编译完程序就会自动下载在把仿真程序覆盖掉。之后打开KEIL C251, 进行下述操作(冲哥这个步骤说要断一下mcu的电源,由于STC-ISP(v6.91J)及之后的版本仿真驱动更新,内部已实现了自动断电再上电,如果是S-Vcc给用户系统供电,则在制作完仿真芯片之后无需给MCU断电再上电,在仿真时勾不勾选“在线下载完成后持续给目标芯片供电”选项也都无影响。但是如果不是S-Vcc给用户系统供电,则在制作完仿真芯片之后还需要给MCU断电再上电。):
插图10、11、12(为冲哥帖子内原图)
8.这样就可以编译并且调试了(如何在keil中创建工程不在此贴详述)
插图13(为冲哥帖子内原图)
9.出现下面这个界面,说明已经成功的进入了仿真模式,然后就可以用变量监测,断点等等的功能
插图14、15(为冲哥帖子内原图)
10.如果想编译后直接下载程序也可以,不进DEBUG模式,如下操作就可以下载程序(注:这个步骤冲哥帖子里说要断电才能下载,新版软件已经不需要断电)
插图16(为冲哥帖子内原图)