在keil uvision(RVMDK)下使用stlink断点调试教程

楼猪本来是用JTAG用来下载和调试stm32的程序的,由于JTAG是D版(你懂的),官方有升级时手贱点了升级,JTAG就变砖了。后来发现用于STM8下载调试用的STLink还可以用来调试stm32,楼猪买的是20多块钱的STLINK,X宝买的,号称可以使用官方固件,于是就有了这篇文章:

首先声明,楼猪用的是win 10 64位,keil uvision是4.74版

1、当然是安装stlink的驱动,楼猪的stlink虽然号称是V2版,但实际上应该不是V2版,因为不能使用JTAG模式来调试,只能使用SW模式

插入硬件后设备管理器会有stlink显示

2、keil uvision中的设置

4.7版本已经不需要将tools.ini覆盖了,设置如下图就可以了,下载器列表有两个st link的话,选择设置选项较多的一个吧;另外一个据说是D版专用的

3、stlink如何接入JTAG接口说明:

stlink接入stm32只要接入三根线就可以了

SWCLK  SWDAT  GND
接线如下图所示:

图中J1的左侧就是有JTAG硬件接口中有缺口的位置

4、如果做完上述步骤还不能进行调试(例如可以下载,但程序不能断点调试,不能跑进main函数等问题),你就要留意stm32的Boot0和Boot1管脚了

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1, 
这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:  
BOOT1=x   BOOT0=0   从用户闪存启动,这是正常的工作模式。 
BOOT1=0   BOOT0=1   从系统存储器启动,这种模式启动的程序功能由厂家设置。 

BOOT1=1   BOOT0=1   从内置SRAM启动,这种模式可以用于调试。

也就是说,如果要调试,要将BOOT1接地,BOOT0上拉,但楼猪自己测试的情况是只要将BOOT0上拉就行,如下图:

如果以上步骤做完还是不行,那可能是楼猪使用的硬件,或者keil uvision的生成设置与你的不一致造成的,请大家再继续钻研了。



原文地址:https://www.cnblogs.com/lingcoln/p/5618021.html