在MDK调试STM32出现“could not stop cortex-m device”软件解决办法

这篇具有很好参考价值的文章主要介绍了在MDK调试STM32出现“could not stop cortex-m device”软件解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在MDK调试STM32出现“could not stop cortex-m device …”软件解决办法

在MDK调试STM32出现“could not stop cortex-m device”软件解决办法,单片机嵌入式,stm32,单片机,嵌入式硬件

这个问题出现的原因很多,答案最多的都是硬件或配置原因,总结为:
1.BOOT0和BOOT1的接法;
2.NRST引脚在开机过程出现低电平导致片子处于在reset状态;
3.或者是编译选项里你没选器件,或者是下载选项里没选器件;
4.主频超频了;
5.编辑器版本原因;
6.调试过程没关闭看门狗。


软件原因

在进行GD32F10x芯片远程升级APP调试时,需要将Bootloader和Applictaion分两段位置0x08000000和0x08004000进行存储,依次执行。在程序移植后,暂时不需要Boorloader功能,需要Applictaion从0x08000000地址执行。
配置如下:
在MDK调试STM32出现“could not stop cortex-m device”软件解决办法,单片机嵌入式,stm32,单片机,嵌入式硬件
在MDK调试STM32出现“could not stop cortex-m device”软件解决办法,单片机嵌入式,stm32,单片机,嵌入式硬件
一般来讲只需要将上图部分改为0x08000000即可,但是调试过程一运行就跑到未知地址处并出现图一报错。
检查代码发现代码中对中断向量表做了偏移处理

NVIC_VectTableSet(NVIC_VECTTAB_FLASH, ((uint32_t)0x00004000));

将偏移量改为0即可,大意了,所以做IAP的一定要注意


原因分析:

在做IAP时,会根据中断号在中断向量表中找到中断服务例程的地址,而在跳转到中断服务程序的时候,必须加上一个偏移量offset,当中断向量表在FLASH中的时候,就是0x08000000+offset,当在SRAM中的时候,是在0x20000000+offset,也就是说,void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)函数的作用就是告诉内核,应用程序的中断向量表是在FLASH中还是在SRAM中,偏移量是多少。
也就说,无论是什么应用程序,必须在0x08000000处存放中断向量表,至少要有复位中断向量,这样内核在上电之后,首先从0x08000000处加载栈指针,然后再0x08000004处加载中断服务例程的地址。
在IAP中,一般会有两个中断向量表,其中Bootloader有一个,APP有一个。Bootloader的向量表就存在0X08000000处,这样上电之后首先运行的就是Bootloader,bootloader进行APP代码的搬移,加载APP栈指针,最后执行跳转,跳转到APP的中断向量表的起始位置(如果APP是运行在FLASH中,这个地址是0x08000000+offset),
注意,APP的工程中需要一定的设置,并在系统初始化的时候使用函数void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset) 告诉内核APP向量表的区域和位置。
SCB是系统控制块,主要封装了内核相关的寄存器的设置,具体的内容请参考《CM3权威指南》。


解决方案:

出现这种情况软件原因一般就是中断向量表设置偏移位置或者看门狗的问题。文章来源地址https://www.toymoban.com/news/detail-642840.html

到了这里,关于在MDK调试STM32出现“could not stop cortex-m device”软件解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决stm32芯片锁死 出现Error:Flash Download Failed-“Cortex-M3“

    打开MDK软件使用SW当时连接单片机发现能连接到板子 显示已经连接上 但是再下载的时候出现Error:Flash Download Failed-\\\"Cortex-M3\\\"下载错误 首先排除硬件连接问题,能够连接到stm32说明硬件连接没有问题,再排除软件编译错误,最后预估可能是硬件stm32芯片由于脉冲电平的干扰导致芯

    2024年02月15日
    浏览(58)
  • STM32(Cortex-M) 双堆栈MSP/PSP科普

    https://blog.csdn.net/Guet_Kite/article/details/76020069 https://blog.csdn.net/zhuimeng_ruili/article/details/118163303 MSP/PSP是什么?作用? MSP主堆栈指针,PSP进程堆栈指针。 MSP:复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程) PSP:由用户的应用程序代码使用。

    2024年04月13日
    浏览(22)
  • 关于stm32 Flash Download failed -“Cortex-M3”的问题

    当使用仿真器或者其他方式烧录程序进入单片机时,有时候会遇到Flash Download failed -“Cortex-M3”的提示弹窗 1.首先我们可以检查一下型号是否选对,点击魔术棒选中Device选择与自己单片机相匹配的型号 (例如我的是野火的指南者所以我选择STM32F103VE)    再点击Debug选择自己所

    2024年02月13日
    浏览(40)
  • ARM 学习笔记2 初识Cortex-M33与STM32G4

    ARM Cortex-M系列处理器的差异与联系:【ARM Cortex-M 系列 1 – Cortex-M0, M3, M4, M7, M33 差异】 两本书籍的英文版和中文版 Definitive Guide to Arm® Cortex®-M23 and Cortex-M33 Processors Arm Cortex-M23和Cortex-M33微处理器权威指南 ST的介绍页 Arm® Cortex®-M33概述 STM32G474RE 采用STM32G474RE MCU的STM32 Nucleo-64开

    2024年01月25日
    浏览(40)
  • 【单片机】STM32 ARM Cortex-M0 微控制器特性概述 双排 TSSOP封装好手工焊接的STM32芯片,双排

    STM32F070CB STM32F070RB STM32F070C6 STM32F070F6 在嵌入式系统和物联网应用中,ARM Cortex-M0 微控制器以其强大的性能和丰富的功能而备受瞩目。本文将介绍该微控制器的主要特性,使读者更好地了解其适用范围和潜在应用。 ARM® 32位 Cortex®-M0 CPU 频率高达 48 MHz Flash 存储器 32 到 128 Kbytes

    2024年01月18日
    浏览(31)
  • STM32F051C8T6 LQFP-48 ARM Cortex-M0 32位微控制器-MCU

    STM32F051C8T6微控制器在物联网领域有诸多应用案例,以下是一些典型的应用场景:   1. 智能家居:在智能家居系统中,STM32F051C8T6可以用于控制智能家电,如智能灯具、智能门锁、智能空调等。通过无线通信模块(如ESP8266)连接到家庭局域网,实现远程控制和智能化管理。  

    2024年04月22日
    浏览(27)
  • Keil:Couldn‘t stop Cortex-M devicel,Please check the JITAG cable 解决方法之一

    最近在写一个脑电采集上位机软件的时候,采集端的板子出了点问题,需要重新烧录一下,之前对stm32接触的比较少,烧录的过程中遇到了Couldn’t stop Cortex-M devicel这个问题,简单来说就是不能将程序烧录到采集端上,也查了一些方法,并没有很好的解决。 使用的是stlink-V2,

    2024年02月13日
    浏览(29)
  • 关于STM32生成Bin文件,出现Error: Q0122E: Could not open file问题小结

    目录 1.出现这一个问题的主要表现为,编译器找不到该文件的路径。 2.注意         解决方法1:添加绝对路径:          2.解决方法2:直接添加                          C:Keil_v5ARMARMCCbinfromelf.exe这个文件路径要修改成自己Keil文件夹的路径位置。 在绝对路径

    2024年01月25日
    浏览(39)
  • STM32芯片flash被锁导致Error Flash Download failed Cortex-M4,解决办法(全)亲测有效

    STM32芯片flash被锁导致Error: Flash Download failed - \\\"Cortex-M4\\\",解决办法(全)亲测有效🤩! 方法1:由于Keil 中debug的仿真器配置出错导致的下载失败(这种问题虽然是低级错误,但我还是觉得非常有必要确认一下自己的配置有没有出错) 方法2:使用第三方烧录软件,通过串口烧录

    2024年02月12日
    浏览(39)
  • ARM Cortex-M 内核调试相关

    推荐博文1: SWD协议通信的简单总结 根据《ARM Technical Reference Manual cortex_m3_r1p1_trm》和《Arm® Debug Interface Architecture Specification ADI v6.0.pdf》进行梳理。 Cortex-M3 处理器实现了ARM v7-M架构。这包括整个 16 位的Thumb指令集和基本的 Thumb-2 32位指令集架构。处理器无法执行ARM指令。 Thumb

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包