-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
scripts: Add support for 'make debug' using Segger JLink on NXP boards
Adds a new debug support script using Segger JLink and configures all NXP boards so they can use it. Tested with Segger JLink GDB server V6.14b and OpenSDA v2.1 firmware. Change-Id: Ia1b297d9c93d21db61379e22f27ae54cda3ad461 Signed-off-by: Maureen Helm <[email protected]>
- Loading branch information
1 parent
599149d
commit 6191cd1
Showing
6 changed files
with
90 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
DEBUG_SCRIPT = jlink.sh | ||
|
||
JLINK_DEVICE = MKL25Z128xxx4 | ||
|
||
export JLINK_DEVICE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
DEBUG_SCRIPT = jlink.sh | ||
|
||
JLINK_DEVICE = MKW41Z512xxx4 | ||
|
||
export JLINK_DEVICE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
DEBUG_SCRIPT = jlink.sh | ||
|
||
JLINK_DEVICE = MK64FN1M0xxx12 | ||
|
||
export JLINK_DEVICE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
DEBUG_SCRIPT = jlink.sh | ||
|
||
JLINK_DEVICE = MKW40Z160xxx4 | ||
|
||
export JLINK_DEVICE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/bin/sh | ||
|
||
# This script is loosly based on a script with same purpose provided | ||
# by RIOT-OS (https://github.com/RIOT-OS/RIOT) | ||
|
||
JLINK_GDBSERVER=${JLINK_GDBSERVER:-JLinkGDBServer} | ||
JLINK_IF=${JLINK_IF:-swd} | ||
BIN_NAME=${O}/${KERNEL_BIN_NAME} | ||
ELF_NAME=${O}/${KERNEL_ELF_NAME} | ||
GDB_PORT=${GDB_PORT:-2331} | ||
|
||
test_config() { | ||
if ! which ${JLINK_GDBSERVER} >/dev/null 2>&1; then | ||
echo "Error: Unable to locate JLink GDB server: ${JLINK_GDBSERVER}" | ||
exit 1 | ||
fi | ||
} | ||
|
||
test_bin() { | ||
if [ ! -f "${BIN_NAME}" ]; then | ||
echo "Error: Unable to locate image binary: ${BIN_NAME}" | ||
exit 1 | ||
fi | ||
} | ||
|
||
do_debug() { | ||
do_debugserver 1 & | ||
|
||
# connect to the GDB server | ||
${GDB} ${TUI} ${ELF_NAME} \ | ||
-ex "target remote :${GDB_PORT}" \ | ||
-ex 'monitor halt' \ | ||
-ex 'load' \ | ||
-ex 'monitor reset' | ||
} | ||
|
||
do_debugserver() { | ||
test_config | ||
|
||
# Calling with an arg will result in setsid being used, which will prevent | ||
# Ctrl-C in GDB from killing the server. The server automatically exits | ||
# when the remote GDB disconnects. | ||
if [ -n "$1" ]; then | ||
SETSID=/usr/bin/setsid | ||
else | ||
SETSID= | ||
fi | ||
|
||
echo "JLink GDB server running on port ${GDB_PORT}" | ||
${SETSID} ${JLINK_GDBSERVER} \ | ||
-port ${GDB_PORT} \ | ||
-if ${JLINK_IF} \ | ||
-device ${JLINK_DEVICE} \ | ||
-singlerun | ||
} | ||
|
||
CMD="$1" | ||
shift | ||
|
||
case "${CMD}" in | ||
debugserver) | ||
do_debugserver "$@" | ||
;; | ||
debug) | ||
do_debug "$@" | ||
;; | ||
esac |