我正在使用带有 AC6 STM32 工作台 (eclipse) 的 Nucleo STM32L031。
我编写我的应用程序并进入调试模式,一切正常,直到我在我的应用程序中添加另一个功能。我注意到当我删除/评论“ new_function ”时,软件可以再次进入调试模式。但是,当我将“ new_function ”添加到代码中并进行调试时,会发生错误并且无法进入调试模式。
Error: Error in final launch sequence
Failed to execute MI command:
load C:Project_STM32L031K6-Nucleo\\Debug\\Project.elf
Error message from debugger back end:
Error erasing flash with vFlashErase packet
Error erasing flash with vFlashErase packet
Run Code Online (Sandbox Code Playgroud)
该错误不仅发生在这个特定的“new_function”上,还会发生在其他函数上,例如由 STM32Cube 生成的 TIM21_Init()。
我试图搜索解决方案,但找不到。
谢谢边
这是 OpenOCD 问题,而不是您的代码问题。当调试器命令文件引用“stlink-v2-1”但我实际拥有的是“stlink-v2”时,我遇到了这个问题。我正在使用 STM32F0 Discovery 板。
我相信 Nucleo 板具有“stlink-v2-1”,因此您可能会遇到与我相反的问题。检查并确保“运行菜单 > 调试配置 > 调试器 > OpenOCD 设置”下的设置已设置为正确的调试器。
如果正在使用调试配置文件(选择“使用默认脚本”或“使用本地脚本”选项),请打开该文件并查找如下行:
source [find interface/stlink-v2.cfg]
Run Code Online (Sandbox Code Playgroud)
就我而言,项目向导创建了一个引用 stlink-v2-1 的模板。将其更改为上面的内容解决了问题。
更新:
当 Eclipse 崩溃并让 OpenOCD 在后台运行时,我也遇到了这个问题。跑步
$ ps aux | grep openocd
Run Code Online (Sandbox Code Playgroud)
如果您看到 OpenOCD 实例在调试器未运行时正在运行,请将其终止。
归档时间: |
|
查看次数: |
18656 次 |
最近记录: |