Info : only one transport option; autoselect 'jtag' RCLK - adaptive trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst adapter_nsrst_delay: 300 jtag_ntrst_delay: 200 adapter speed: 3 kHz 1 Info : clock speed 3 kHz Info : JTAG tap: at91sam9g45.cpu tap/device found: 0x0792603f (mfg: 0x01f, part: 0x7926, ver: 0x0) Info : Embedded ICE version 6 Info : at91sam9g45.cpu: hardware has 2 breakpoint/watchpoint units
获得了ICE版本号,没有报错。
5.保持openocd运行,给设备重新上电。openocd在设备上电后,打印如下:
Error: invalid mode value encountered 0 target state: halted target halted in Thumb state due to debug-request, current mode: Thread cpsr: 0x00000020 pc: 0xffffffee MMU: disabled, D-Cache: disabled, I-Cache: disabled
如果在设备断电的情况下启动openocd,打印的结果如5.1中所述。此时给设备上电,openocd也会打印上面的信息,同样可以证明工作正常(有调试器的情况下上电,停在最初的状态下)。
【5.3】板子部分。这部分可以定义板载的外设(如NAND)、设定一些事件发生(如CPU复位)后执行的动作等。
我是参考 board/icnova_sam9g45_sodimm.cfg编写的。
board配置文件通常会引用target部分。
【5.4】telnet监听端口设置。
#telnet的监听端口,默认4444.可以通过telnet执行jtag指令,openocd文档中有jtag指令的解释。 #telnet_port 4444
【5.5】gdb监听端口设置。
#gdbsever的TCP/IP监听端口,默认3333.设定为disable,关闭gdbserver;pipe为标准输入输出,也就是管道 #gdb_port 3333
【】SWD
transport select swd 需要写在 interface ftdi 后,否则会提示
Error: Debug adapter doesn't support any transports?
0.8版本中会做如下提示,也许只能支持特定的interface。
Info : only one transport option; autoselect 'jtag' Error: session's transport is already selected.
0.9-dev版本中,会提示:
Info : FTDI SWD mode enabled
swd
Error: SWD mode is active but SWD_EN signal is not defined
in procedure 'init'
接下来需要设置引脚上的信号,以后再研究。