Add container for openocd and gdb
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…
Reference in New Issue