Permalink
Browse files

Turn this repository into examples and libs only.

  • Loading branch information...
1 parent 585c993 commit 7b0b8d1b12c93252b24656734e142f9ef6a4468d @karlp committed Dec 5, 2011
View
@@ -1,11 +0,0 @@
-# stm32 discovery boards, with onboard st/linkv1
-# ie, STM32VL
-
-SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", \
- MODE:="0666", \
- SYMLINK+="stlinkv1_%n"
-
-# If you share your linux system with other users, or just don't like the
-# idea of write permission for everybody, you can replace MODE:="0666" with
-# OWNER:="yourusername" to create the device owned by you, or with
-# GROUP:="somegroupname" and mange access using standard unix groups.
View
@@ -1,12 +0,0 @@
-# stm32 discovery boards, with onboard st/linkv2
-# ie, STM32L, STM32F4.
-# STM32VL has st/linkv1, which is quite different
-
-SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
- MODE:="0666", \
- SYMLINK+="stlinkv2_%n"
-
-# If you share your linux system with other users, or just don't like the
-# idea of write permission for everybody, you can replace MODE:="0666" with
-# OWNER:="yourusername" to create the device owned by you, or with
-# GROUP:="somegroupname" and mange access using standard unix groups.
View
@@ -1,2 +0,0 @@
-The development team wants to acknowledge the following people:
-- STMicroelectronics discovery kit team for their low cost boards and for their help in development process.
View
13 AUTHORS
@@ -1,15 +1,6 @@
-m@capitanio.org
-spen@spen-soft.co.uk
+Extracted from git logs of the example directory...
+
texane@gmail.com
-whitequark@whitequark.org
-grestm@galexander.org
karlp@tweak.net.au
-h0rr0rrdrag@gmail.com
-mstempin@com1.fr
-bon@elektron.ikp.physik.tu-darmstadt.de
-nelsonjm@macpod.neta
-ned@bike-nomad.com
csamuelson@swingpal.com
-bravikov@gmail.com
jnosky - codegrinder69@hotmail.com
-marpe@mimuw.edu.pl
View
39 LICENSE
@@ -1,27 +1,22 @@
-Copyright (c) 2011 The "Capt'ns Missing Link" Authors. All rights reserved.
+Copyright (c) 2010-2011, "stlink developers"
+All rights reserved.
Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Martin Capitanio nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
+* Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
View
@@ -1,54 +0,0 @@
-# make ... for both stlink v1 and stlink v2 support
-##
-VPATH=src
-
-SOURCES_LIB=stlink-common.c stlink-usb.c stlink-sg.c uglylogging.c
-OBJS_LIB=$(SOURCES_LIB:.c=.o)
-TEST_PROGRAMS=test_usb test_sg
-LDFLAGS=-L. -lstlink -lusb-1.0
-
-CFLAGS+=-g
-CFLAGS+=-DDEBUG=1
-CFLAGS+=-std=gnu99
-CFLAGS+=-Wall -Wextra
-
-
-LIBRARY=libstlink.a
-
-all: $(LIBRARY) flash gdbserver $(TEST_PROGRAMS)
-
-$(LIBRARY): $(OBJS_LIB)
- @echo "objs are $(OBJS_LIB)"
- $(AR) -cr $@ $^
- @echo "done making library"
-
-
-test_sg: test_sg.o $(LIBRARY)
- @echo "building test_sg"
- $(CC) test_sg.o $(LDFLAGS) -o $@
-
-test_usb: test_usb.o $(LIBRARY)
- @echo "building test_usb"
- $(CC) test_usb.o $(LDFLAGS) -o $@
- @echo "done linking"
-
-%.o: %.c
- @echo "building $^ into $@"
- $(CC) $(CFLAGS) -c $^ -o $@
- @echo "done compiling"
-
-clean:
- rm -rf $(OBJS_LIB)
- rm -rf $(LIBRARY)
- rm -rf test_usb*
- rm -rf test_sg*
- $(MAKE) -C flash clean
- $(MAKE) -C gdbserver clean
-
-flash:
- $(MAKE) -C flash
-
-gdbserver:
- $(MAKE) -C gdbserver CONFIG_USE_LIBSG="$(CONFIG_USE_LIBSG)"
-
-.PHONY: clean all flash gdbserver
View
149 README
@@ -1,143 +1,16 @@
-HOWTO
-=====
+This project aims to contain some useful libraries and linker/startup scripts for stm32 development.
+(Indeed, possibly any Cortex development, but that is an even bigger goal)
-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.
+It's not really intended that this whole project, as is, prove useful to anyone, more that pieces of it should be.
+Perhaps one day, the library and startup code could become a standalone project...
-2 different transport layers are used:
-. STLINKv1 uses SCSI passthru commands over USB,
-. STLINKv2 uses raw USB commands.
+This project contains code from ST's Standard Peripheral Library downloads, and was originally the "examples"
+directory from the "stlink" project, https://github.com/texane/stlink
-Common requirements
-~~~~~~~~~~~~~~~~~~~
+The examples really needed to be split off from that project, and I use this now also as a home for my own
+experiments. The examples mostly target the STM32 Discovery board series.
-libusb-1.0 (You probably already have this, but you'll need the
-development version to compile)
-
-IF YOU HAVE AN STLINKv1
-~~~~~~~~~~~~~~~~~~~~~~~
-The STLINKv1's SCSI emulation is very broken, so the best thing to do
-is tell your operating system to completely ignore it.
-
-Options (do one of these before you plug it in)
- *) modprobe -r usb-storage && modprobe usb-storage quirks=483:3744:i
-or *)1. add "options usb-storage quirks=483:3744:i" to /etc/modprobe.conf
- *)2. modprobe -r usb-storage && modprobe usb-storage
-or *)1. cp stlink_v1.modprobe.conf /etc/modprobe.d
- *)2. modprobe -r usb-storage && modprobe usb-storage
-
-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
-
-There are a few options:
-
-./gdbserver/st-util - usage:
-
- -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
- -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
-
-Have fun!
-
-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: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 :4242' is good enough
-for GDB.
-
-Setting up udev rules
-=====================
-
-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
-
-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
-==========================
-
-You can run your firmware directly from SRAM if you want to. Just link
-it at 0x20000000 and do
-(gdb) load firmware.elf
-
-It will be loaded, and pc will be adjusted to point to start of the
-code, if it is linked correctly (i.e. ELF has correct entry point).
-
-Writing to flash
-================
-
-The GDB stub ships with a correct memory map, including the flash area.
-If you would link your executable to 0x08000000 and then do
-(gdb) load firmware.elf
-then it would be written to the memory.
-
-
-FAQ
-===
-
-Q: My breakpoints do not work at all or only work once.
-
-A: Optimizations can cause severe instruction reordering. For example,
-if you are doing something like `REG = 0x100;' in a loop, the code may
-be split into two parts: loading 0x100 into some intermediate register
-and moving that value to REG. When you set up a breakpoint, GDB will
-hook to the first instruction, which may be called only once if there are
-enough unused registers. In my experience, -O3 causes that frequently.
-
-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:
-* STM32F100xx (Medium Density VL, as on the 32VL Discovery board)
-* STM32L1xx (STM32L Discovery board)
-* STM32F407xx (STM32F4 Discovery board)
-
-Please report any and all known working combinations so I can update this!
+License in the original project was BSD 3 clause. I've changed that to BSD 2 clause. This seems to be in line with
+the original stated goals of the stlink project, though as the examples are largely built on ST provided code, and the
+startup and linker scripts largely compiled by me, I've gone further. This is of course up for discussion.
View
11 TODO
@@ -1,11 +0,0 @@
-. flash tool
- . improve flash writing, still use word fast write... too slow
-
-. documentation
- . make README points to doc/tutorial
-
-. compile and test a realtime kernel, for instance:
-http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:stm32l_discovery
-svn checkout https://chibios.svn.sourceforge.net/svnroot/chibios/trunk ;
-cd chibios/trunk/demos/ARMCM3-STM32L152-DISCOVERY ;
-make ;
View
Binary file not shown.
Oops, something went wrong.

0 comments on commit 7b0b8d1

Please sign in to comment.