From 71487660812754e5f26f26595b6c3d456f9f6db8 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Fri, 8 Oct 2021 00:30:08 -0400 Subject: Get rid of conversion stuff, just build content -> website --- pelican/content/UsingSTLink.md | 103 ----------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 pelican/content/UsingSTLink.md (limited to 'pelican/content/UsingSTLink.md') diff --git a/pelican/content/UsingSTLink.md b/pelican/content/UsingSTLink.md deleted file mode 100644 index c51104f..0000000 --- a/pelican/content/UsingSTLink.md +++ /dev/null @@ -1,103 +0,0 @@ -Title: UsingSTLink -Author: joachims -Date: 2017-05-13 03:37 -Modified: 2019-01-24 14:37 - -# Using ST-LINK - -ST-LINK is STM's implementation of the [| Serial Wire Debug (SWD)](https://developer.arm.com/products/architecture/cpu-architecture/debug-visibility-and-trace/coresight-architecture/serial-wire-debug) protocol. -Think of it as JTAG if you're more comfortable with that. - -## Getting an ST-LINK programmer - -ST-LINK is built into all(?) of STM's Nucleo and Discovery evaluation -boards, which can be had for as little as US$10 from [Mouser](http://mouser.com) -or [element14](http://element14.com) ([Newark](http://newark.com) in -the Americas, [Farnell](http://farnell.com) in Europe). - -We have tested with STM32F0DISCOVERY and STM32F4DISCOVERY (both with ST-LINK -v2.0) and NUCLEO-F411RE (with ST-LINK v2.1). - -### Connecting the ST-LINK programmer to the Alpha - -On the STM board, remove the pair of ST-LINK jumpers (CN4 on the F4DISCO, -CN2 on the F0DISCO and NUCLEO). Then locate the 6-pin SWD header (CN3 on -the F0DISCO, CN2 on the F4DISCO, CN4 on the NUCLEO), and connect it to J1 -on the Alpha board (top, just left of center). - -This photo shows the correct orientation of the cables (both boards -oriented so that the logo is right-side up): - -![IMG_20170512_205557_s.jpg]({attach}/UsingSTLink/IMG_20170512_205557_s.jpg) - -NOTE: The STM boards have an unfortunate tendency to short unexpectedly, so -I recommend putting them in an enclosure. In this case, I've cut holes in -the original packaging. - -## Install OpenOCD and the debugger - -``` -$ apt-get install gdb-arm-none-eabi openocd -``` - -## Get the `debug` and `flash-target` scripts - -If you don't already have a cryptech source tree somewhere, get the source distribution, e.g. -``` -$ apt-get source cryptech-alpha -``` - -The scripts are in `sw/stm32/bin`. - -## Re-flashing the Alpha - -### To reflash with our binary firmware -``` -$ tar xfz /usr/share/cryptech-alpha-firmware.tar.gz -$ flash-target hsm -``` - - -What you should see is something like: -``` -** Programming Started ** -auto erase enabled -Info : device id = 0x20016419 -Info : flash size = 2048kbytes -Info : Dual Bank 2048 kiB STM32F42x/43x/469/479 found -target halted due to breakpoint, current mode: Thread -xPSR: 0x61000000 pc: 0x20000046 msp: 0x2002fffc -wrote 524288 bytes from file projects/hsm/hsm.elf in 12.344705s (41.475 KiB/s) -** Programming Finished ** -** Verify Started ** -target halted due to breakpoint, current mode: Thread -xPSR: 0x61000000 pc: 0x2000002e msp: 0x2002fffc -target halted due to breakpoint, current mode: Thread -xPSR: 0x61000000 pc: 0x2000002e msp: 0x2002fffc -verified 509100 bytes in 0.953672s (521.320 KiB/s) -** Verified OK ** -** Resetting Target ** -Info : Unable to match requested speed 2000 kHz, using 1800 kHz -Info : Unable to match requested speed 2000 kHz, using 1800 kHz -adapter speed: 1800 kHz -shutdown command invoked -``` - - -### To reflash with firmware you built from source - -See BuildingFromSource. - -## Debugging the Alpha - -This site shows several ways to use various debuggers to debug the -firmware in an STM32: - - http://fun-tech.se/stm32/OpenOCD/gdb.php - -There is a shell script called 'bin/debug' that starts an OpenOCD server -and GDB: - -``` -$ sw/stm32/bin/debug projects/hsm/hsm -``` -- cgit v1.2.3