美文网首页STM32
STM32调试器配置异常导致的问题与解决方法(二)

STM32调试器配置异常导致的问题与解决方法(二)

作者: 海东青电子 | 来源:发表于2018-10-08 23:38 被阅读0次

    在上文《STM32调试器配置异常导致的问题与解决方法(一)》中,总结了ST-LINK调试出现异常情况的处理,这里再把JLINK调试出现异常的情况记录如下:

    STM32F103芯片管脚配置时,如果在STM32CUBE的SYS选项配置成 No Debug,或Serial Wire,使用JLINK调试或下载代码时,报错:

    图一 图二 图三 图四

    上面报错对应的CUBE产生的代码是(在文件 stm32f1xx_hal_msp.c 中):

    __HAL_AFIO_REMAP_SWJ_DISABLE();        //SWD和JLINK都不支持

    __HAL_AFIO_REMAP_SWJ_NOJTAG();         //支持SWD,即ST-LINK可用,但不支持JLINK

    将上述语句改成

    __HAL_AFIO_REMAP_SWJ_NONJTRST();     //不使用JLINK的RST引脚,可节省一个pin

    __HAL_AFIO_REMAP_SWJ_ENABLE();           //全功能的JLINK功能(当然包括SWD功能,即ST-LINK也是支持的)

    再使用JLINK下载或debug就都ok了。

    当项目中MCU选型使用TSOP封装等仅有少量pin的芯片时,可能必须使用调试管脚作为GPIO来使用,为了不影响debug和程序下载,可以考虑下面的变通方法:

    调试代码时,先把SWDIO、SWCLK等pin配置成debug模式,即

    __HAL_AFIO_REMAP_SWJ_ENABLE(); 

    这种情况下,可以正常调试程序,当然,对应管脚的GPIO功能是无效的;当整体功能调试完毕、确认不再需要调试功能后,再把SWDIO、SWCLK配置成GPIO模式。此时,使用5线制的ST-LINK(带复位线)是可以正常下载的(因为复位后MCU默认是支持debug的,只要之后不运行用户程序,可debug状态就不改变),但不能debug。

    相关文章

      网友评论

        本文标题:STM32调试器配置异常导致的问题与解决方法(二)

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