Openocd server for cc3200-env

This commit is contained in:
Thomas Klaehn 2019-10-16 10:29:11 +02:00
commit b2133c610c
5 changed files with 184 additions and 0 deletions

25
0001-openocd-poll.patch Normal file
View File

@ -0,0 +1,25 @@
From eebb3feb1b79dab95153eb56aaf93edea8c6fa93 Mon Sep 17 00:00:00 2001
From: Thomas Klaehn <thomas.klaehn@perinet.io>
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 <sys/socket.h>
#endif
#ifdef HAVE_SYS_POLL_H
-#include <sys/poll.h>
+#include <poll.h>
#endif
#ifdef __ECOS
--
2.20.1

28
Dockerfile Normal file
View File

@ -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

12
README.md Normal file
View File

@ -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

115
cc3200.cfg Normal file
View File

@ -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
}

4
openocd-cc3200 Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
openocd -f /cc3200.cfg