Do not send a NUL at end of packets to gdb.
[fw/stlink] / README
diff --git a/README b/README
index 28caaf87822977e0ea611ed918f9017a7c185838..10feb7dc29720bd4d1bc745a253ce15b5e2380cb 100644 (file)
--- a/README
+++ b/README
@@ -1,11 +1,3 @@
-IMPORTANT SHORT TERM NOTICE:
-If you are targetting F1 devices, with either stlinkv1 or v2 hardware, you
-_need_ to use karlp's libwork2 branch.  
-
-If you are targetting F4, you _need_ to use texane's master
-
-If you are targetting F2 or L1, please let us know how it goes!
-
 HOWTO
 =====
 
@@ -22,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
 ~~~~~~~~~~~~~~~~~~~~~~~
@@ -42,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 <USB_BUS>:<USB_ADDR>.
+
+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!
 
@@ -87,6 +113,7 @@ 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 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 
@@ -110,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
 ===
 
@@ -127,3 +155,51 @@ 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'.
+
+Q: Load command does not work in GDB.
+
+A: Some people report XML/EXPAT is not enabled by default when compiling
+GDB. Memory map parsing thus fail. Use --enable-expat.
+
+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:
+* STM32F030F4P6 (custom board)
+* 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...)
+* STM32F103VET6 (HY-STM32 board)
+* STM32F105RCT6 (DecaWave EVB1000 board)
+* STM32F303xx (STM32F3 Discovery board)
+* STM32F407xx (STM32F4 Discovery board)
+* STM32F429I-DISCO (STM32F4 Discovery board with LCD)
+* STM32F439VIT6 (discovery board reseated CPU)
+* STM32L052K8T6 (custom board)
+* 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) 
+* STM32F030R8T6 (STM32 Nucleo-F030R8 board)
+* STM32F072RBT6 (STM32 Nucleo-F072RB board)
+* STM32F103RB (STM32 Nucleo-F103RB board)
+* STM32F303RET6 (STM32 Nucleo-F303RE board)
+* STM32F334R8 (STM32 Nucleo-F334R8 board)
+* STM32F411RET6 (STM32 Nucleo-F411RE board)
+& STM32F756NGHx (STMF7 evaluation board)
+
+Please report any and all known working combinations so I can update this!