我使用的是ubuntu9.04,
ARM是S3C4510B(ARM7)。
我使用telnet登录openocd后输入和打印信息如下?
telnet输出是:
-----------------------------------------------------------
> reset
JTAG device found: 0x1f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x1)
timed out waiting for halt after reset
>
-----------------------------------------------------------
openocd输出是:
-----------------------------------------------------------
Info: jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x1f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x1)
User: target.c:436 target_process_reset(): Timed out waiting for halt after reset
-----------------------------------------------------------
在这种情况下,我用示波器检查JTAG接口的电平情况,系统的nSRST信号(PIN15),和JTAG的nTRST信号(PIN3),都有正常的波形。但是就是JTAG停不住芯片,造成我写得脚本也无法执行。造成ARM不能正常的做内存映射(remap),造成没法调试。:Q
但是奇怪的是,我在telnet上直接使用halt命令就可以停住ARM。
telnet输出是:
-----------------------------------------------------------
> halt
target state: halted
target halted in ARM state due to debug request, current mode: Supervisor
cpsr: 0x60000053 pc: 0x007d40d8
>
-----------------------------------------------------------
我的脚本是:
openocd.cfg的内容:
-----------------------------------------------------------
#Daemon configuration
telnet_port 4444
gdb_port 3333
daemon_startup attach
#JTAG interface configuration
interface ft2232
jtag_speed 0
reset_config trst_and_srst
jtag_device 4 0x1 0xf 0xe
jtag_nsrst_delay 100
jtag_ntrst_delay 500
ft2232_vid_pid 0x1457 0x5118
#ft2232_layout "jtagkey_prototype_v1"
ft2232_layout "jtagkey"
ft2232_device_desc "USB<=>JTAG&RS232"
#Target configuration
target arm7tdmi little reset_halt 0 arm7tdmi
run_and_halt_time 0 50
target_script 0 reset OnReset.script
-----------------------------------------------------------
OnReset.script的内容:
-----------------------------------------------------------
mww 0x03ff4008 0x00000000
mww 0x03ff4004 0x00000000
mww 0x03ff0000 0xE7FF0020
mww 0x03ff3010 0x00000000
shutdown
-----------------------------------------------------------
很明显,如果执行了我了OnReset.script文件,openocd会断开服务,但是没有,所以,ARM的初始化没有成功,所以,这几天我的功夫白费了,Orz。
另外,因为这个原因。我的没法使用Eclipse,在进入调试界面时,总是进不去,并解死掉,只有kill掉arm-linux-gdb的进程后才使得Eclipse恢复,arm-linux-gdb被杀之前的状态是"do_poll"。
请各位大哥帮帮忙。。。小弟先谢住了。。。