最近使用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系列的下载程序,猜测是板子硬件上有问题。 转接板如下:
现在可以正常下载程序,不过下载速度只有200kHz,超过这个频率也会下载失败,按照手册中的描述,DIO是内部上拉,CLK是内部下拉,按理说不需要再进行外部上下拉,而且使用STM32L151和F103都不需要进行外部上下拉。 使用项目板子尝试把DIO增加外部10k电阻上拉,把CLK增加外部10k电阻下拉,再次尝试下载时发现下载速度可以达到4000kHz(4M)。
|