X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=README;h=f85c6815a5cddf5741afdb750f1b8dec8d5e7e10;hb=93b186f15b493728d1662f4a6f96aae835962f02;hp=58bd3ca2ae26236cd83c28fd9a38b13e19c93d26;hpb=24128597e1ec3fa8aa042aa80db8582d20a14bb6;p=fw%2Fstlink diff --git a/README b/README index 58bd3ca..f85c681 100644 --- a/README +++ b/README @@ -1,15 +1,33 @@ HOWTO ===== -First, load the sg kernel module. +First, you have to know there are several boards supported by the software. +Those boards use a chip to translate from USB to JTAG commands. The chip is +called stlink and there are 2 versions: +. STLINKv1, present on STM32VL discovery kits, +. STLINKv2, present on STM32L discovery and later kits. + +2 different transport layers are used: +. STLINKv1 uses SCSI passthru commands over USB, +. STLINKv2 uses raw USB commands. + +It means that if you are using a STM32VL board, you have to install and load +SCSI related software. First, load the sg kernel module: # modprobe sg +Then, you need to install the package libsgutils2-dev. On Ubuntu: +# sudo apt-get install libsgutils2-dev + +LIBUSB is required for both cases. + To run the gdb server, do (you do not need sudo if you have set up permissions correctly): -$ make -C build && sudo ./build/st-util 1234 /dev/sg1 +$ make -C build && sudo ./build/st-util [/dev/sgX] + +Currently, the GDB server listening port is hardcoded to 4242: Then, in gdb: -(gdb) target remote :1234 +(gdb) target remote :4242 Have fun! @@ -18,15 +36,15 @@ Resetting the chip from GDB You may reset the chip using GDB if you want. You'll need to use `target extended-remote' command like in this session: -(gdb) target extended-remote localhost:1111 -Remote debugging using localhost:1111 +(gdb) target extended-remote localhost:4242 +Remote debugging using localhost:4242 0x080007a8 in _startup () (gdb) kill Kill the program being debugged? (y or n) y (gdb) run Starting program: /home/whitequark/ST/apps/bally/firmware.elf -Remember that you can shorten the commands. `tar ext :1111' is good enough +Remember that you can shorten the commands. `tar ext :4242' is good enough for GDB. Setting up udev rules @@ -58,6 +76,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 ===