Add container for openocd and gdb

pull/19/head
Andre Richter 5 years ago committed by Andre Richter
parent 8da8c0e33f
commit 59c6c15c1d

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
#
# =============================================================================
#
# MIT License
#
# Copyright (c) 2019 Andre Richter <andre.o.richter@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# =============================================================================
FROM ubuntu:18.04
LABEL maintainer="The Cortex-A team <cortex-a@teams.rust-embedded.org>, Andre Richter <andre.o.richter@gmail.com>"
RUN set -ex; \
tempPkgs=' \
ca-certificates \
wget \
'; \
apt-get update; \
apt-get install -q -y --no-install-recommends \
$tempPkgs \
gdb-multiarch \
; \
wget -P ~ git.io/.gdbinit; \
apt-get purge -y --auto-remove $tempPkgs; \
apt-get autoremove -q -y; \
apt-get clean -q -y; \
rm -rf /var/lib/apt/lists/*
COPY auto /root/.gdbinit.d/auto

@ -0,0 +1 @@
dashboard -layout assembly expressions history memory registers source stack

@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
#
# =============================================================================
#
# MIT License
#
# Copyright (c) 2019 Andre Richter <andre.o.richter@gmail.com>
# Copyright (c) 2019 Nao Taco <naotaco@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# =============================================================================
FROM ubuntu:18.04
LABEL maintainer="The Cortex-A team <cortex-a@teams.rust-embedded.org>, Andre Richter <andre.o.richter@gmail.com>"
RUN set -ex; \
tempPkgs=' \
automake \
build-essential \
ca-certificates \
git \
libtool \
pkg-config \
'; \
apt-get update; \
apt-get install -q -y --no-install-recommends \
$tempPkgs \
libusb-1.0.0-dev \
; \
git clone --depth 1 https://git.code.sf.net/p/openocd/code openocd; \
cd openocd; \
./bootstrap; \
./configure --enable-ftdi; \
make; \
make install; \
apt-get purge -y --auto-remove $tempPkgs; \
apt-get autoremove -q -y; \
apt-get clean -q -y; \
rm -rf /var/lib/apt/lists/*
COPY rpi3.cfg /openocd/
ENTRYPOINT ["openocd", "-f", "/openocd/tcl/interface/ftdi/olimex-arm-usb-tiny-h.cfg", "-f", "/openocd/rpi3.cfg"]

@ -0,0 +1,48 @@
# Script from
# https://www.suse.com/c/debugging-raspberry-pi-3-with-jtag/
transport select jtag
# we need to enable srst even though we don't connect it
reset_config trst_and_srst
adapter_khz 1000
jtag_ntrst_delay 500
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME rpi3
}
#
# Main DAP
#
if { [info exists DAP_TAPID] } {
set _DAP_TAPID $DAP_TAPID
} else {
set _DAP_TAPID 0x4ba00477
}
jtag newtap $_CHIPNAME tap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -enable
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.tap
set _TARGETNAME $_CHIPNAME.core
set _CTINAME $_CHIPNAME.cti
set DBGBASE {0x80010000 0x80012000 0x80014000 0x80016000}
set CTIBASE {0x80018000 0x80019000 0x8001a000 0x8001b000}
set _cores 4
for { set _core 0 } { $_core < $_cores } { incr _core } {
cti create $_CTINAME.$_core -dap $_CHIPNAME.dap -ap-num 0 \
-ctibase [lindex $CTIBASE $_core]
target create $_TARGETNAME$_core aarch64 \
-dap $_CHIPNAME.dap -coreid $_core \
-dbgbase [lindex $DBGBASE $_core] -cti $_CTINAME.$_core
$_TARGETNAME$_core configure -event reset-assert-post "aarch64 dbginit"
$_TARGETNAME$_core configure -event gdb-attach { halt }
}
Loading…
Cancel
Save