2

我正在eclipse CDT制作软件,用于stm32f0-discovery使用ST-linkUSB 对该控制器进行编程。

几天前,OpenOCD6.0.1我按照本教程开始调试我的芯片:

调试器教程

几个小时后,我完成了这项工作,能够逐步实现我的程序设置断点和所有其他通常的调试内容。现在,奇怪的事情发生了。我开始将我的配置从 -> Monitor reset halt 更改为 -> monitor soft_reset_halt 。我这样做是因为我最终想开发一个带有 stm32f0 系列芯片的电路板,我只能使用三根线进行编程(SWD 编程)。因为我没有让它工作,所以我恢复了设置以监控重置暂停。

今天我想调试我的芯片,我遇到了以下问题,当我开始调试时,eclipse告诉我我的设备在它的重置处理程序中(这对我来说似乎是正确的,因为monitor reset halt命令)此时openocd输出是:

Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
adapter speed: 1000 kHz
srst_only separate srst_nogate srst_open_drain
Info : clock speed 1000 kHz
Info : stm32f0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : accepting 'gdb' connection from 3333
Info : device id = 0x20006440
Info : flash size = 64kbytes
Warn : acknowledgment received, but no packet pending
undefined debug reason 6 - target needs reset
target state: halted
target halted due to debug-request, current mode: Thread 
xPSR: 0xc1000000 pc: 0x0800291c msp: 0x20002000
Info : Padding image section 0 with 4 bytes
target state: halted
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20002000
Warn : stepi ignored. GDB will now fetch the register state from the target.

现在,我想跨过重置处理程序来启动我的程序,然后我收到这个警告:

警告:stepi 被忽略。GDB 现在将从目标中获取寄存器状态。

经过一番谷歌搜索后,我找不到任何导致此问题的原因。有没有人有解决这个问题的线索。

4

1 回答 1

1

好的,我发现了这个。因为我使用了不止一个 stm32f0discovery 板(一个用于我的工作,一个用于家庭爱好)。板的配置是不同的。因此,我不得不更新不工作的主板固件。固件比我家里的固件旧 2 个版本。

问题解决了 :)

于 2013-01-18T12:23:43.923 回答