# -*- tcl -*- # Target configuration for the Samsung s3c6410 system on chip # Processor : ARM1176 # Info: JTAG device found: 0x0032409d (Manufacturer: 0x04e, Part: 0x0324, Version: 0x0) # [Duane Ellis 27/nov/2008: Above 0x0032409d appears to be copy/paste from other places] # [and I do not believe it to be accurate, hence the 0xffffffff below] telnet_port 4444 interface ft2232 jtag_khz 1000 ft2232_vid_pid 0x1457 0x5118 ft2232_layout jtagkey #ft2232_layout oocdlink ft2232_device_desc "USB<=>JTAG&RS232" if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { set _CHIPNAME s3c6410 } if { [info exists ENDIAN] } { set _ENDIAN $ENDIAN } else { # this defaults to a bigendian set _ENDIAN little } # trace buffer if { [info exists ETBTAPID ] } { set _ETBTAPID $ETBTAPID } else { # force an error till we get a good number set _ETBTAPID 0x2b900f0f } if { [info exists CPUTAPID ] } { set _CPUTAPID $CPUTAPID } else { # force an error till we get a good number set _CPUTAPID 0x07b76f0f } #jtag scan chain jtag newtap $_CHIPNAME etb -irlen 4 -expected-id $_ETBTAPID jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID set _TARGETNAME $_CHIPNAME.cpu target create $_TARGETNAME arm11 -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm1176 jtag_nsrst_delay 500 jtag_ntrst_delay 500 #reset configuration reset_config trst_and_srst # trace setup ... NOTE, "normal full" mode fudges the real ETMv3.1 mode etm config $_TARGETNAME 16 normal full etb etb config $_TARGETNAME $_CHIPNAME.etb #nand device s3c6400 0 set _NANDNAME $_CHIPNAME.nand nand device $_NANDNAME s3c6400 $_TARGETNAME #nand device s3c6400 s3c6400
上面就是openocd的配置openoce.cfg
打开openocd:
shanl@shanl-E430:~$ sudo openocd -f openocd.cfg
shanl@shanl-E430:~$ telnet localhost 4444
烧写程序:
> halt
> nand probe 0
> nand erase 0 0 0x20000
> nand write 0 /home/shanl/tftpboot/led.bin 0
> reset