EclipseGDB";init";及;“运行”;使用OpenOCD的ARM LPC1768的设置?

EclipseGDB";init";及;“运行”;使用OpenOCD的ARM LPC1768的设置?,eclipse,gdb,arm,cortex-m3,openocd,Eclipse,Gdb,Arm,Cortex M3,Openocd,我终于知道了如何让代码在上面运行,不过现在我正试图让调试工作起来 我使用的工具链是:Yagarto+Eclipse(Indigo)(w/GDB硬件调试器)+OpenOCD。我的JTAG接口是:板 我发现了一个类似的设置,但它是针对不同的JTAG接口的,所以不是很有用。还有一个关于的问题,但是gdb命令不适用于OpenOCD 此时,我唯一确定的命令(对于init)是目标远程localhost:3333(用于连接到OpenOCD gdb服务器) 在此对话框中应该使用哪些设置和gdb命令? (忽略“

我终于知道了如何让代码在上面运行,不过现在我正试图让调试工作起来

我使用的工具链是:Yagarto+Eclipse(Indigo)(w/GDB硬件调试器)+OpenOCD。我的JTAG接口是:

我发现了一个类似的设置,但它是针对不同的JTAG接口的,所以不是很有用。还有一个关于的问题,但是gdb命令不适用于OpenOCD

此时,我唯一确定的命令(对于init)是
目标远程localhost:3333
(用于连接到OpenOCD gdb服务器)

在此对话框中应该使用哪些设置和gdb命令?

(忽略“SAM7X256”,只需重新使用上述链接之一的屏幕截图。我使用的是ARM LPC1768)

此外,我的电路板使用a(用户代码从0x2000开始)是否会影响这些调试设置

更新:采纳德韦尔奇的建议,我确实设法让一些基本的OpenOCD命令开始工作(
reset init
mdw
mww
load\u image
,等等)。奇怪的“JTAG-DP STICKY”错误与我的ram链接器脚本有关,找到了一个带有的,只需修改LPC1768的内存大小,加载_映像就可以了


不过,我仍然想知道如何正确配置eclipse进行GDB调试。

也许可以一步一步地尝试

启动openocd,可能类似于-f interface/jlink.cfg-f target/lpc1768.cfg之类的东西,听起来您已经可以工作了

第二个telnet localhost 4444或任何windows命令行(类似)

在TELNET会话中:

> halt
> mdw 0x0000
诸如此类的事情,看看你是在和那个角色说话

如果您已经编译了一些程序,您可以简单地加载并运行它们,例如,如果您制作了一个只有ram的程序(告诉链接器.text、.data等都是0x10000000),那么

(是,添加1使其奇怪,这是一个thumb处理器不会运行ARM指令(lsbit=0表示ARM模式lsbit=1表示thumb模式)

要在重新编译后重新运行,请执行以下操作:

> halt
> load_image /path/to/myprog.elf
> resume 0x10000001
然后,在基于ram的程序显示生命迹象后,担心闪烁等问题

如果这些都不起作用,那么gdb只不过是其上的一个更高层次的复杂性,并且将使其更难理解

就引导加载程序而言,答案取决于您是尝试从ram运行还是从程序运行到rom。如果从ram运行,您可以接管系统并接管所有ram、一些芯片(stm32)有一些你可以调用的例程,这些例程需要一些ram来保持不变,但是如果你接管了芯片,你可以拥有所有的ram,如果它不知道二进制文件(使用elf文件、ihex或srec或几乎任何不是.bin的东西,如果工具支持的话,那么告诉链接器或者调试器就好了)


如果你要写flash,那么你最好确切地知道flash的哪个部分可能包含引导加载程序,引导加载程序是如何传递给你的代码的,等等,然后再次告诉链接器和调试器这些信息。根据引导加载程序的位置和你正在做的事情,你可以很容易地擦除/丢弃引导加载程序(很多lpc和st部件都有引导加载程序,串行或usb,它们在某种程度上可以防止偶然的错误,但如果不小心,您通常仍然可以擦除它们并替换它们)。

能够让其中一些命令工作,但从未让加载映像工作,它只会返回一个“JTAG-DP STICKY ERROR MEM_AP_CSW 0x23000052”错误。我确实搞乱了flash write_image命令,设法吹走了引导加载程序,然后将其取回(但又丢失了,呵呵)。一定是我的“ram”出了什么问题"链接器脚本,因为我拉下了你的mbed_示例/ebay_board/blinker01代码,它加载良好,并与load_image/resume 0x10000001一起运行良好。我的链接器脚本和Makefile在这里:我对那些其他ram部分运气不太好,我想知道是否必须打开一些东西才能工作。使用arm…objdump来分解elf文件将显示程序中0x23000052处的内容。查看lpc1768.cfg openocd配置文件,它指定了0x10000000处的一些ram,但我没有看到0x23000000条目,这可能是警告有jtag投诉的原因。可能jtag拒绝在那里写入。终于让load_映像正常工作了,耶!找到了LP的项目模板C1758带有RAM链接器脚本,只需修改LPC1768的内存大小并加载_映像,效果很好。(请参阅我的“更新”)很高兴听到,如果基本的openocd命令不起作用,那么gdb也不起作用,所以您可能已经完成了一半。我不使用gdb或任何调试器,因此我无法帮助您完成这一点…祝您好运…玩得开心。
> halt
> load_image /path/to/myprog.elf
> resume 0x10000001