From 7e4fb975597854b6889938facdf43d8e52505566 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 7 Feb 2014 11:54:57 -0800 Subject: nrf51: Implement the support for Nordic's nRF51 devices Add support for Nordic's nRF51 chip series. Tested with nRF51822. Change-Id: Id70f6fd76888cc595a353aefb84d25c4cd325d7d Signed-off-by: Andrey Smirnov Reviewed-on: http://openocd.zylin.com/1945 Tested-by: jenkins Reviewed-by: Andrey Yurovsky Reviewed-by: Spencer Oliver --- tcl/target/nrf51_stlink.tcl | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 tcl/target/nrf51_stlink.tcl (limited to 'tcl') diff --git a/tcl/target/nrf51_stlink.tcl b/tcl/target/nrf51_stlink.tcl new file mode 100644 index 00000000..d37ec943 --- /dev/null +++ b/tcl/target/nrf51_stlink.tcl @@ -0,0 +1,70 @@ +# +# script for Nordic nRF51 series, a CORTEX-M0 chip +# + +source [find target/swj-dp.tcl] + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME nrf51 +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + set _ENDIAN little +} + +# Work-area is a space in RAM used for flash programming +# By default use 2kB +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x800 +} + +if { [info exists CPUTAPID] } { + set _CPUTAPID $CPUTAPID +} else { + set _CPUTAPID 0x0bb11477 +} + +if { [info exists TRANSPORT] } { + set _TRANSPORT $TRANSPORT + if { $TRANSPORT == "hla_jtag" } { + if { [info exists CPUTAPID] == 0 } { + # jtag requires us to use the jtag tap id + set _CPUTAPID 0x3ba00477 + } + } +} else { + set _TRANSPORT hla_swd +} + +# add deprecated transport name check +if { $_TRANSPORT == "stlink_swd" } { + set _TRANSPORT "hla_swd" + echo "DEPRECATED! use 'hla_swd' transport not 'stlink_swd'" +} + +if { $_TRANSPORT == "stlink_jtag" } { + set _TRANSPORT "hla_jtag" + echo "DEPRECATED! use 'hla_jtag' transport not 'stlink_jtag'" +} +# end deprecated checks + +transport select $_TRANSPORT +hla newtap $_CHIPNAME cpu -expected-id $_CPUTAPID + +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME hla_target -chain-position $_TARGETNAME + +$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 + +# The chip supports standard ARM/Cortex-M0 SYSRESETREQ signal, so for +# non-"hla" targets it would be useful to have the following in the config. +# cortex_m reset_config sysresetreq + +set _FLASHNAME $_CHIPNAME.flash +flash bank $_FLASHNAME nrf51 0x00000000 0 1 1 $_TARGETNAME -- cgit v1.2.3-18-g5258