2009-07-10 02:21:12 -05:00
|
|
|
# TI/Luminary Stellaris lm3s3748
|
2008-08-22 07:51:48 -05:00
|
|
|
|
2008-11-30 16:25:43 -06:00
|
|
|
if { [info exists CHIPNAME] } {
|
|
|
|
set _CHIPNAME $CHIPNAME
|
|
|
|
} else {
|
|
|
|
set _CHIPNAME lm3s3748
|
|
|
|
}
|
|
|
|
|
|
|
|
if { [info exists ENDIAN] } {
|
|
|
|
set _ENDIAN $ENDIAN
|
|
|
|
} else {
|
|
|
|
# this defaults to a little endian
|
|
|
|
set _ENDIAN little
|
|
|
|
}
|
|
|
|
|
|
|
|
if { [info exists CPUTAPID ] } {
|
|
|
|
set _CPUTAPID $CPUTAPID
|
|
|
|
} else {
|
2008-12-03 06:02:46 -06:00
|
|
|
set _CPUTAPID 0x3ba00477
|
2008-11-30 16:25:43 -06:00
|
|
|
}
|
|
|
|
|
2009-07-10 02:21:12 -05:00
|
|
|
# JTAG scan chain
|
2008-11-30 16:25:43 -06:00
|
|
|
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0xf -expected-id $_CPUTAPID
|
|
|
|
|
2009-07-10 02:21:12 -05:00
|
|
|
# The "lm3s" variant works around an erratum when using Rev A of "DustDevil"
|
|
|
|
# parts (third generation, includes LM3S3748). It keeps the debug registers
|
|
|
|
# from being cleared, by using software reset not SRST; NOP on newer revs.
|
|
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
|
|
|
target create $_TARGETNAME cortex_m3 -endian $_ENDIAN \
|
|
|
|
-chain-position $_TARGETNAME -variant lm3s
|
2008-08-22 07:51:48 -05:00
|
|
|
|
2009-07-10 02:21:12 -05:00
|
|
|
# 8k working area at base of ram, not backed up
|
|
|
|
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 0x2000
|
2008-08-22 07:51:48 -05:00
|
|
|
|
2009-07-10 02:21:12 -05:00
|
|
|
# flash configuration -- one bank of 128K
|
2008-08-22 07:51:48 -05:00
|
|
|
flash bank stellaris 0 0 0 0 0
|