X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=README;h=c0ccc7b73c42c1ddd78823ac1a7e8d0a1ad65005;hb=8478302f693c57c7ef41d34da869f0b10cd244bd;hp=109aa25003a298fffa36e4e4412823ff98ef42dd;hpb=b463d50c5b34935334b26a48903c68c3893b1ff2;p=fw%2Fstlink diff --git a/README b/README index 109aa25..c0ccc7b 100644 --- a/README +++ b/README @@ -14,8 +14,9 @@ called stlink and there are 2 versions: Common requirements ~~~~~~~~~~~~~~~~~~~ -libusb-1.0 (You probably already have this, but you'll need the +. libusb-1.0 (You probably already have this, but you'll need the development version to compile) +. pkg-config IF YOU HAVE AN STLINKv1 ~~~~~~~~~~~~~~~~~~~~~~~ @@ -34,25 +35,58 @@ IF YOU HAVE AN STLINKv2 You're ready to go :) -To run the gdb server, do (you do not need sudo if you have set up -permissions correctly): -$ make && [sudo] ./gdbserver/st-util +COMPILING +~~~~~~~~~ +This project was converted to Autotools by a well meaning individual. The +following steps will build the project for you. + +$ ./autogen.sh +$ ./configure +$ make + +USING THE GDBSERVER +~~~~~~~~~~~~~~~~~~~ +To run the gdb server: (you do not need sudo if you have set up +permissions correctly) + +$ make && [sudo] ./st-util There are a few options: -./gdbserver/st-util - usage: +./st-util - usage: - -h, --help Print this help - -vXX, --verbose=XX specify a specific verbosity level (0..99) - -v, --verbose specify generally verbose logging + -h, --help Print this help + -vXX, --verbose=XX Specify a specific verbosity level (0..99) + -v, --verbose Specify generally verbose logging -s X, --stlink_version=X - Choose what version of stlink to use, (defaults to 2) - -1, --stlinkv1 Force stlink version 1 + Choose what version of stlink to use, (defaults to 2) + -1, --stlinkv1 Force stlink version 1 -p 4242, --listen_port=1234 - Set the gdb server listen port. (default port: 4242) - -Then, in gdb: (remember, you need to run an _ARM_ gdb, not an x86 gdb) -(gdb) target remote :4242 + Set the gdb server listen port. (default port: 4242) + -m, --multi + Set gdb server to extended mode. + st-util will continue listening for connections after disconnect. + -n, --no-reset + Do not reset board on connection. + +The STLINKv2 device to use can be specified in the environment +variable STLINK_DEVICE on the format :. + +Then, in your project directory, someting like this... +(remember, you need to run an _ARM_ gdb, not an x86 gdb) + +$ arm-none-eabi-gdb fancyblink.elf +... +(gdb) tar extended-remote :4242 +... +(gdb) load +Loading section .text, size 0x458 lma 0x8000000 +Loading section .data, size 0x8 lma 0x8000458 +Start address 0x80001c1, load size 1120 +Transfer rate: 1 KB/sec, 560 bytes/write. +(gdb) +... +(gdb) continue Have fun! @@ -75,13 +109,14 @@ for GDB. Setting up udev rules ===================== -For convenience, you may install udev rules file, 49-stlinkv2.rules, located +For convenience, you may install udev rules file, 49-stlinkv*.rules, located in the root of repository. You will need to copy it to /etc/udev/rules.d, and then either reboot or execute $ udevadm control --reload-rules +$ udevadm trigger -Udev will now create a /dev/stlinkv2_XX file, with the appropriate permissions. -This is currently all the device is for, (only one stlinkv2 is supported at +Udev will now create a /dev/stlinkv2_XX or /dev/stlinkv1_XX file, with the appropriate permissions. +This is currently all the device is for, (only one stlink of each version is supported at any time presently) Running programs from SRAM @@ -102,6 +137,7 @@ If you would link your executable to 0x08000000 and then do (gdb) load firmware.elf then it would be written to the memory. + FAQ === @@ -119,3 +155,35 @@ Q: At some point I use GDB command `next', and it hangs. A: Sometimes when you will try to use GDB `next' command to skip a loop, it will use a rather inefficient single-stepping way of doing that. Set up a breakpoint manually in that case and do `continue'. + +Currently known working combinations of programmer and target +============================================================= + +STLink v1 (as found on the 32VL Discovery board) + +Known Working Targets: +* STM32F100xx (Medium Density VL) +* STM32F103 (according to jpa- on ##stm32) + +No information: +* everything else! + +STLink v2 (as found on the 32L and F4 Discovery boards) +Known Working Targets: +* STM32F0Discovery (STM32F0 Discovery board) +* STM32F100xx (Medium Density VL, as on the 32VL Discovery board) +* STM32L1xx (STM32L Discovery board) +* STM32F103VC, STM32F107RC, STM32L151RB, STM32F205RE and STM32F405RE on custom boards + (https://github.com/UweBonnes/wiki_fuer_alex/layout/usps...) +* STM32F303xx (STM32F3 Discovery board) +* STM32F407xx (STM32F4 Discovery board) +* STM32F429I-DISCO (STM32F4 Discovery board with LCD) +* STM32F439VIT6 (discovery board reseated CPU) +* STM32L151CB (custom board) +* STM32L152RB (STM32L-Discovery board, custom board) + +STLink v2-1 (as found on the Nucleo boards) +Known Working Targets: +* STM32F401xx (STM32 Nucleo-F401RE board) + +Please report any and all known working combinations so I can update this!