Jump to content


Project of the Month Winners Announced here. Congratulations to all who participated!


Black Magic Probe for Stellaris Launchpad

black magic probe gdb

  • Please log in to reply
1 reply to this topic

#1 xpg


    Advanced Member

  • Members
  • PipPipPip
  • 100 posts

Posted 22 May 2013 - 05:28 PM

I got a bit tired of not being able to debug on the NXP LPC1114, which supports SWD only (no JTAG). I discovered Black Magic Probe (http://www.blacksphe...main/blackmagic), which is an open source project that uses an STM32 to export a GDB server via an USB serial device. It support both JTAG and SWD and should support a wide range of Cortex-M0, M3, and M4 targets. It can be used both for debugging and flashing of the target device.
There is dedicated hardware for this, and it can be run on the F4-discovery boards as well. Unfortunately, I do not have any F4-discovery boards lying around. But I do have a couple of Stellaris Launchpads that do nothing but sit in their box. So I added the necessary code to allow the Black Magic Probe firmware to be flashed on the Stellarpad (which really wasn’t that much).
Currently, UART0 on the LM4F is used, which is connected to the on-board debugger module that exports it via USB as a CDC ACM serial device.
The pinout is as follows:
JTAG TDI           - PB1
JTAG TDO           - PE4
TRST               - PA5
SRST               - PA6

IDLE LED           - PF2 / Blue LED
ERROR LED          - PF3 / Green LED
You can grab the code from GitHub and try it out yourself: https://github.com/x...laris_launchpad
Please try it out, and let me know if there are any issues.
The quick build instructions (for Linux) are:
src$ git clone https://github.com/xpgdk/blackmagic.git
Cloning into 'blackmagic'...
remote: Counting objects: 1858, done.
remote: Compressing objects: 100% (763/763), done.
remote: Total 1858 (delta 1230), reused 1704 (delta 1084)
Receiving objects: 100% (1858/1858), 610.80 KiB | 324 KiB/s, done.
Resolving deltas: 100% (1230/1230), done.
src$ cd blackmagic
src/blackmagic$ git checkout stellaris_launchpad
Branch stellaris_launchpad set up to track remote branch stellaris_launchpad from origin.
Switched to a new branch 'stellaris_launchpad'
src/blackmagic$ git submodule init
Submodule 'libopencm3' (https://github.com/xpgdk/libopencm3.git) registered for path 'libopencm3'
src/blackmagic$ git submodule update
Cloning into 'libopencm3'...
remote: Counting objects: 12626, done.
remote: Compressing objects: 100% (6494/6494), done.
remote: Total 12626 (delta 6511), reused 11757 (delta 5726)
Receiving objects: 100% (12626/12626), 3.25 MiB | 733 KiB/s, done.
Resolving deltas: 100% (6511/6511), done.
Submodule path 'libopencm3': checked out 'f5c15fe74e438dc9cceac6543d2c180957a3dd9b'
src/blackmagic$ cd libopencm3
src/blackmagic/libopencm3$ make
src/blackmagic/libopencm3$ cd ../src
src/blackmagic/src$ make PROBE_HOST=stellaris-launchpad
src/blackmagic/src$ lm4flash blackmagic.bin
Now, you should be able to connect to the GDB server:
$ arm-none-eabi-gdb
(gdb) target extended-remote /dev/ttyACM0
(gdb) monitor swdp_scan
Target voltage: not supported
Available Targets:
No. Att Driver
 1      lpc11xx
(gdb) attach 1
Attached to Remote target
0x00001066 in ?? ()

  • bluehash, Rickta59, oPossum and 2 others like this

#2 bluehash



  • Administrators
  • 827 posts
  • LocationWaltham, MA

Posted 22 May 2013 - 10:09 PM

Thanks xpg!

C2KCentral - C2000 News, Projects and Forums | 43oh - MSP430 Discussion, News and Projects. | Stellarisiti - Stellaris ARM Forums, Projects and News.

Also tagged with one or more of these keywords: black magic probe, gdb

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users