From b2133c610c834190f4fbcb59a3f1752816c98a1a Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Wed, 16 Oct 2019 10:29:11 +0200 Subject: [PATCH] Openocd server for cc3200-env --- 0001-openocd-poll.patch | 25 +++++++++ Dockerfile | 28 ++++++++++ README.md | 12 +++++ cc3200.cfg | 115 ++++++++++++++++++++++++++++++++++++++++ openocd-cc3200 | 4 ++ 5 files changed, 184 insertions(+) create mode 100644 0001-openocd-poll.patch create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 cc3200.cfg create mode 100755 openocd-cc3200 diff --git a/0001-openocd-poll.patch b/0001-openocd-poll.patch new file mode 100644 index 0000000..c0a3c32 --- /dev/null +++ b/0001-openocd-poll.patch @@ -0,0 +1,25 @@ +From eebb3feb1b79dab95153eb56aaf93edea8c6fa93 Mon Sep 17 00:00:00 2001 +From: Thomas Klaehn +Date: Tue, 15 Oct 2019 09:13:03 +0200 +Subject: [PATCH 3/3] . + +--- + src/helper/system.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/helper/system.h b/src/helper/system.h +index f710cfb5..22ffd295 100644 +--- a/src/helper/system.h ++++ b/src/helper/system.h +@@ -57,7 +57,7 @@ + #include + #endif + #ifdef HAVE_SYS_POLL_H +-#include ++#include + #endif + + #ifdef __ECOS +-- +2.20.1 + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a36bdeb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM alpine:3.1 + +RUN apk update +RUN apk add \ + build-base \ + git \ + libtool \ + libusb-dev \ + perl \ + autoconf \ + automake \ + texinfo + +RUN git config --global user.email "tkl@blackfinn.de" +RUN git config --global user.name "Thomas Klaehn" + +# Openocd +COPY 0001-openocd-poll.patch / +COPY cc3200.cfg / +COPY openocd-cc3200 /bin +RUN git clone --single-branch --branch v0.9.0 --depth 1 https://repo.or.cz/openocd.git \ + && cd openocd \ + && git am /0001-openocd-poll.patch \ + && ./bootstrap \ + && ./configure \ + && make \ + && make install + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d97c99f --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# CC3200 environment + +## Build + +docker build -t cc3200-env . + +## Run + +### Openocd server + +docker run --privileged -p 3333:3333 cc3200-env openocd-cc3200 + diff --git a/cc3200.cfg b/cc3200.cfg new file mode 100644 index 0000000..115b9ce --- /dev/null +++ b/cc3200.cfg @@ -0,0 +1,115 @@ +# +# Droidifi OpenOCD config for TI CC3200-LP V3.2 +# +# http://www.droidifi.com +# +# Copyright Droidifi LLC 2013, 2014 All rights reserved +# + +#***************************************************************************** +# +# +# +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# +# Neither the name of Texas Instruments Incorporated nor the names of +# its contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +#***************************************************************************** + +interface ftdi +ftdi_vid_pid 0x0451 0xc32a +adapter_khz 1000 +set _ENDIAN little +ftdi_layout_init 0x00a8 0x00eb +ftdi_layout_signal nSRST -noe 0x0020 +ftdi_layout_signal SWD_EN -ndata 0x0080 +ftdi_layout_signal SWDIO_OE -data 0x0008 + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME cc3200 +} + +source [find target/icepick.cfg] + +if { [info exists DAP_TAPID] } { + set _DAP_TAPID $DAP_TAPID +} else { + set _DAP_TAPID 0x0b97c02f +} + +jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -disable + +# APP m4 +jtag configure $_CHIPNAME.dap -event tap-enable "icepick_c_tapenable $_CHIPNAME.jrc 0" + +# ICEpick-C (JTAG route controller) +if { [info exists JRC_TAPID] } { + set _JRC_TAPID $JRC_TAPID +} else { + set _JRC_TAPID $_DAP_TAPID +} + +jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f -expected-id $_JRC_TAPID -ignore-version + +# jtag configure auto0.jrc -event post-reset "runtest 100" +jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.dap" +jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100" + +set _TARGETNAME $_CHIPNAME.cpu + +target create $_CHIPNAME.cpu cortex_m -endian little -chain-position $_CHIPNAME.dap +$_CHIPNAME.cpu configure -work-area-phys 0x20000000 -work-area-size 0x30000 -work-area-backup 0 -coreid 0 + +source [find mem_helper.tcl] + +$_TARGETNAME configure -event gdb-attach { +# cc3200_dbginit $_TARGETNAME +# cortex_m dbginit + halt +} + +$_TARGETNAME configure -event "reset-start" { adapter_khz 1000 } +$_TARGETNAME configure -event "reset-assert" { + + global _CHIPNAME + + # assert warm system reset through ICEPick + icepick_c_wreset $_CHIPNAME.jrc +} + + +# Run this to enable invasive debugging. This is run automatically in the +# reset sequence. +proc cc3200_dbginit {target} { + + cortex_m dbginit + +} + diff --git a/openocd-cc3200 b/openocd-cc3200 new file mode 100755 index 0000000..c1d666c --- /dev/null +++ b/openocd-cc3200 @@ -0,0 +1,4 @@ +#!/bin/sh + +openocd -f /cc3200.cfg +