美文网首页
STM32F103 SWD被锁的挽救方法

STM32F103 SWD被锁的挽救方法

作者: 小鱼儿他老汉 | 来源:发表于2018-11-10 07:46 被阅读307次

芯片被锁

昨晚做实验,从STM32CubeMX导出的CAN工程编译、下载、运行到main()中HAL初始化后,Keil忽然抛出错误,无法访问SWD。一连两片STM32F103C8都被锁死。我还以为是我的STLinkV2有问题,一连换了两个Dongle,都是如此。

这让我联想起之前似乎也有过此现象,当时是STM32CubeMX导出的USB CDC工程编译下载后SWD无法访问。

当时不知道是芯片损坏、被锁还是什么情况。忧心忡忡地睡觉去了。

灵光一现

早起,蓦然想起在STM32CubeMX生成时或许没有使能SWD总线。那芯片下载运行后,SWD会作为GPIO来使用。这种情况下,只有ISP bootloader是可以使用了。

等清楚了Boot0/Boot1的引脚位置和UART1的引脚位置;插上USB/UART转换器,安装软件,连接芯片,果然ISP bootloader是可以连接的。然后擦除芯片,连接SWD。

SWD总线又可以访问了。很棒!

SRAM启动

除了正常Flash启动和ISP启动,Boot0/Boot1=1的话,可以从SRAM启动,这种方式我倒是没有尝试过。传说中可以在不损害Flash代码的前提下,下载部分调试代码到RAM中去。问题在于这部分代码是通过SWD还是Bootloader下载的?

相关文章

  • STM32F103 SWD被锁的挽救方法

    芯片被锁 昨晚做实验,从STM32CubeMX导出的CAN工程编译、下载、运行到main()中HAL初始化后,Ke...

  • STM32一文通(1) -SWD调试 新建工程

    一. SWD方法调试 SWD方法需要:1. SWD接口 2.ST-LINK V2连接器 首先将STLINK驱动...

  • 挽救被“锁死”的文章

    简书平台什么都好,唯有这个“锁定”文章的设置,搞得我是连连炸毛!四处拜访,原来并非我一人为之苦恼,好多友友吐...

  • 1.2.4 Lock锁接口实现 -- ReentrantLock

    Lock的核心API 方法描述lock获取锁的方法,若锁被其他线程获取,则等待(阻塞)lockInterrupti...

  • 并发

    锁:方法锁、对象锁、类锁1.方法锁(synchronized修饰方法时):synchronized放在方法和在方法...

  • synchronized用法

    互斥锁:当一线程进入synchronized修饰的代码块或者方法,其它线程等待,知道锁被释放;内置锁:对象锁,每个...

  • wait() 和 notify()

    一、阻塞和恢复 Thread#sleep方法阻塞式IO方法获取同步锁失败,(锁被其他线程占用)Object#wai...

  • synchronized和Lock的区别

    可重入锁:1. 加锁方法调用另外一个加锁方法; 2. 递归调用加锁方法;独享锁:该锁每一次只能被一个线程所持有,其...

  • 挽救婚姻的方法

    挽救婚姻的方法 结婚后的人都躲不过七年之痒的劫数,平淡期、冷战期、互相厌弃,这样的时候是很常有的,那这样的情况该怎...

  • 在MDK调试STM32出现“could not stop cor

    为什么SWD烧录STM32时BOOT0脚要接高电平,否则SWD下载失败 之前网上买了个STM32的最小系统开发板,...

网友评论

      本文标题:STM32F103 SWD被锁的挽救方法

      本文链接:https://www.haomeiwen.com/subject/jdaaxqtx.html