用于Flash和Ram调试的STM32 GDB / OpenOCD命令和初始化

时间:2011-04-04 06:09:23

标签: eclipse debugging gdb stm32 openocd

我正在寻找有关正确的GDB / OpenOCD初始化和运行命令(外部工具)的帮助,以便在Eclipse中用于flash和ram调试,以及需要合并到make文件中的正确修改或添加内容如果这当然很重要的话,flash对于这个mcu的ram建设。

mcu:STM32F103VET6

我正在使用带有Zylin嵌入式CDT的Eclipse Helios,Yagarto Tools和Bins,OpenOCD .4,以及一个Olimex ARM-USB-OCD Jtag适配器。

我已经配置了ARM-USB-OCD并将其作为外部工具添加到Eclipse中。为了初始化OpenOCD,我在Eclipse中使用了以下命令。电路板配置文件引用stm32 mcu:

“openocd -f interface / olimex-arm-usb-ocd-h.cfg -f board / stm32f10x_128k_eval.cfg”

当我在Eclipse中运行它时,一切似乎都在工作(GDB接口,OpenOCD找到了mcu等)。我也可以telnet到OpenOCD并运行命令。 所以,我被困在下一部分;用于flash和ram调试的初始化和命令,以及擦除闪存。

我阅读了几个教程,并搜索了网络,但未能找到任何特定的处理器。我是新手,所以我可能不会认识到一个等效的产品。

JIMT

3 个答案:

答案 0 :(得分:26)

答案 1 :(得分:3)

我很难让JLink与STM3240XX一起工作,并在JLink GDB服务器文档中发现一条声明,说明加载闪存后你必须发出“目标重置”:

“在闪存中调试时,在闪存下载后重置目标时,堆栈指针和PC会自动设置。下载后无需复位,堆栈指针和PC需要正确初始化,通常在.gdbinit文件中。“

当我在Eclipse的调试器安装程序的Run框中添加“目标重置”时,突然一切正常。我对Kinetis K60没有这个问题。

该文档还解释了如果您不想发出重置,如何直接手动设置堆栈指针和pc。它可能不是解决问题而是重置的断开/连接。

答案 2 :(得分:2)

在命令 - “运行”命令的最后一句之后我使用的是:

symbol-file STM3210CTest/test_rom.elf
thbreak main
continue

thbreak main句子是gdb停在主要位置的原因。