STM32用SW下载提示T-bit of XPSR is 0 but should be 1. Changed to 1/Could not start CPU core.(ErrorCode:-1)

最近使用SW模式对STM32L431下载程序时,出现以下三种情况的报错:
①:
***JLink Error: Could not start CPU core. (ErrorCode: -1)
***JLink Error: Can not read register 15 (R15) while CPU is running
**JLink Warning: CPU could not be halted
***JLink Error: Could not read memory location 0x20000000 when trying to clear soft RAM BPCould not start CPU core. (ErrorCode: -1)
***JLink Error: Can not read register 20 (CFBP) while CPU is running

②:
**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
**JLink Warning: Could not read memory location 0x20000000 when trying to set soft RAM BP
Cannot setup Breakpoint at Address
**JLink Warning: Could not read memory location 0x20000000 when trying to set soft RAM BP
Cannot setup Breakpoint at Address

③:
Contents mismatch at: 08005E7BH (Flash=B5H Required=35H) !
Contents mismatch at: 08006478H (Flash=03H Required=06H) !
Contents mismatch at: 08006479H (Flash=78H Required=F0H) !
Contents mismatch at: 0800647AH (Flash=9BH Required=36H) !
Contents mismatch at: 0800647BH (Flash=FEH Required=FDH) !
Contents mismatch at: 08008CF5H (Flash=BFH Required=78H) !

导致每次下载程序都不成功,由于程序原本是在WIN7系统的电脑上写的,而且在win7电脑上下载调试没有出现过问题,但是放在win10系统的电脑上就每次下载都报错。
考虑过可能导致这种情况的问题点:
1.keil版本问题
2.jlink驱动版本问题
3.复位电路问题
4.keil中设置的下载速度过高问题
5.pack包版本问题
6.jlink问题,试了jlink和st-link
7.芯片误操作被锁

尝试了以上各种方法都不行,由于使用的是三线SWD(DIO,CLK,GND)最后就想试试直接把三根线接在jlink引脚(20pin)上,因为之前一直用的是转接板,结果突然就正常了,反复测试下载程序都正常。之后换了一个转接板也还是不行,奇怪的是之前在win7电脑上也是一直连着转接板在用,而且在win10电脑上连着转接板也可以正常对STM32L151和F103系列的下载程序,猜测是板子硬件上有问题。
转接板如下:
STM32用SW下载提示T-bit of XPSR is 0 but should be 1. Changed to 1/Could not start CPU core.(ErrorCode:-1)_第1张图片

现在可以正常下载程序,不过下载速度只有200kHz,超过这个频率也会下载失败,按照手册中的描述,DIO是内部上拉,CLK是内部下拉,按理说不需要再进行外部上下拉,而且使用STM32L151和F103都不需要进行外部上下拉。
STM32用SW下载提示T-bit of XPSR is 0 but should be 1. Changed to 1/Could not start CPU core.(ErrorCode:-1)_第2张图片
使用项目板子尝试把DIO增加外部10k电阻上拉,把CLK增加外部10k电阻下拉,再次尝试下载时发现下载速度可以达到4000kHz(4M)。

你可能感兴趣的:(STM32,单片机,stm32,单片机,arm)