我正在寻找有关正确的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
答案 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停在主要位置的原因。