harper2xs 发表于 2020-1-3 17:14:45

SWD模式下载失败的问题

如图所示,是我的SWD接口和复位接口
第一次下载成功,但是之后下载一直报错如下:
JLink info:
------------
DLL: V4.92 , compiled Sep 30 2014 09:33:42
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware: V7.00
S/N : 20090928
Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull

* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found Cortex-M3 r1p1, Little endian.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
* JLink Info: TPIU fitted.
* JLink Info: ETM fitted.
ROMTableAddr = 0xE00FF003
**JLink Warning: Could not set S_RESET_ST

Target info:
------------
Device: STM32F103RC
VTarget = 3.300V
State of Pins:
TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints:          4
JTAG speed: 1000 kHz

Erase Done.
Programming Failed!
Error: Flash Download failed-"Cortex-M3"
Flash Load finished at 16:11:43


后来按照网上的方法,取消勾选后reset and run之后,下载时快速按一下复位键,显示如下:
JLink info:
------------
DLL: V4.92 , compiled Sep 30 2014 09:33:42
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware: V7.00
S/N : 20090928
Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull

* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found Cortex-M3 r1p1, Little endian.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
* JLink Info: TPIU fitted.
* JLink Info: ETM fitted.
ROMTableAddr = 0xE00FF003
**JLink Warning: S_RESET_ST not cleared
**JLink Warning: CPU did not halt after reset.
**JLink Warning: CPU could not be halted
* JLink Info: Core did not halt after reset, trying to disable WDT.
**JLink Warning: CPU did not halt after reset.
**JLink Warning: CPU could not be halted
**JLink Warning: S_RESET_ST not cleared
* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found Cortex-M3 r1p1, Little endian.

Target info:
------------
Device: STM32F103RC
VTarget = 3.300V
State of Pins:
TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints:          4
JTAG speed: 1000 kHz

Erase Done.
Programming Done.
Verify OK.
Flash Load finished at 16:06:48
调试后发现硬件软件均没有问题,将下载器从JLINK更换成STLINK就可以正常下载程序了




mylovemcu 发表于 2020-1-4 08:09:54

你用的标准库还是cubemx生成的hal库
有可能是你把SWD模式禁用了禁用以后只能使用SWD模式下载一次程序之后下载需要按下复位键下载
取消的方式也很简单标准库的话默认使能SWD模式去掉禁用语句就可以   cubemx的话默认是禁止SWD模式使能的方法就是在SYS-Debug中选择serial wire项就启用SWD模式了

关于keil中的设置问题如果取消勾选resert and run以后下载完程序需要重新上电才能运行比较麻烦还是勾选上就可以

设计上复位引脚的电阻是50欧姆吗太小了复位时电源消耗太大换成1K以上下载接口没有问题

wenyangzeng 发表于 2020-1-3 17:44:57

最后一句已经提示Flash在16:06:48下载完成了呀!

五哥1 发表于 2020-1-3 18:33:26

直接去掉R6,R7电阻再次测试下

五哥1 发表于 2020-1-3 18:42:55

或者用别人成熟的方案

toofree 发表于 2020-1-3 20:37:38

按照提示是下载成功了。
重新上一次电,应该就可以跑了。如果还跑不起来,那有可能是你程序的问题。

harper2xs 发表于 2020-1-3 22:15:49

toofree 发表于 2020-1-3 20:37
按照提示是下载成功了。
重新上一次电,应该就可以跑了。如果还跑不起来,那有可能是你程序的问题。 ...

但是问题还是没解决,总不能每次下载程序都按一次复位键。。

harper2xs 发表于 2020-1-6 09:00:06

mylovemcu 发表于 2020-1-4 08:09
你用的标准库还是cubemx生成的hal库
有可能是你把SWD模式禁用了禁用以后只能使用SWD模式下载一次程序   ...

我用的是标准库,但是并没有写禁用SWD语句

harper2xs 发表于 2020-1-6 09:01:35

mylovemcu 发表于 2020-1-4 08:09
你用的标准库还是cubemx生成的hal库
有可能是你把SWD模式禁用了禁用以后只能使用SWD模式下载一次程序   ...

是否需要写使能SWD语句?我用的是正点原子stm32f103rct6的标准库

mylovemcu 发表于 2020-1-6 09:44:18

harper2xs 发表于 2020-1-6 09:01
是否需要写使能SWD语句?我用的是正点原子stm32f103rct6的标准库

标准库默认是使能SWD的你可以看一下寄存器看是不是这的问题
页: [1] 2
查看完整版本: SWD模式下载失败的问题