STM32F103 project continued here due to attachment space limit in first post:
First photo shows a somewhat more useful DIY version with all pins being brought out and 8mhz crystal. There's still only two wires needed on the back of the PCB so very easy to build. It's functionally pretty much the same as those Ebay "blue boards" but about 1/4 the cost and a lot smaller. Connections to a USB/serial dongle are shown and BOOT0 set high ready to flash. Note that it's necessary to reset prior to download again and that this jumper must be removed to run a program stand alone. This is a link to the demo ST flash loader utility that works over a serial port:
http://www.st.com/web/en/catalog/tools/PF257525. A super simple LED demo program is attached below.
Second photo shows one of the blue boards hooked up to a $5 STlink clone ready for debugging/tracing. BOOT0 must be set opposite (run) compared to serial download for this to work. Warning: BOOT0 and BOOT1 labels are reversed on most of the Ebay boards so watch out for that. One mod was to remove the 2 useless pins next to the reset button so it can be pushed easier. Another mod I couldn't resist was to re-purpose that pointless power LED to a short cable that can be plugged into any of the pins. For me TX/PA9 is most useful because it can demonstrate either UART output or I/O blinky routines. Also flashes during download. Triple duty! I found the LED wasn't needed on serial download setups because the USB/serial adapter I use already has an onboard LED connected to that pin.
Another zip file (LEDA9_01) is attached that has source and pre-compiled hex for flashing a PA9/TX LED program. It's very simple, only half dozen instructions and can be re-assembled using the tools in first post. When reset in run mode or flashed in boot mode with "user run" box checked the RX LED on the USB/serial adapter will light. If your adapter don't have an LED there then add one to the board from VCC through series resistor to PA9/TX (pin 31).
As requested a third photo is added showing the bottom of the board with more detail on where those 2 wires (power/ground) go. Another photo shows the top of my "no crystal" board with reset button and a RUN/BOOT select switch. Note that the bootloader does not restore defaults but instead leaves many things initialized which can cause the user program to run when bootloaded but fail when reset in run mode. So it's necessary to set that switch to run (BOOT0 pin low) and reset again to be sure your code works. The button and switch are pretty much essential if you do this a lot. Note that just resetting in boot mode will not run the user program but waits for a new one to be loaded instead.
Westfw has put together an assembly program that not only wiggles IO but shows how to set up the PLL for various system clock speeds. There's a discussion later on here regarding influence of wait states, multipliers, etc.. Very educational for those interested in how these chips REALLY work. Most of the internet C "tutorials" are by those who don't have a clue. Some say you must sacrifice this knowledge for productivity but IMO learning assembler not only allows for both but results in far superior coding skills. Anyway I've attached a version of the westfw file that has been modified to run on the $1 board. Quite a good example for showing what's actually going on under the hood and introducing things like conditionals and other source directives (pseudo ops). Also his quite useful .asmh include file which would be essential for those interested in serious development since the ST one only works with C. All this compiles with the tools from post number one.
Another gem by westfw is added in here (WESHEL01). This time, in addition to a few more directives, we learn how to do subroutines and pass data. It initializes the UART and sends "hello world" continuously at 115kbps. Very conveniently uses the same pins as the bootloader so all you need do is to fire up Hyperterminal or similar to see the messages. Even without a comm program you can see the LED flicker as characters are sent. Just like the others simply copy to T.S and hit 'a' or click on it.
More helpful hints from westfw in HELLO_ISR.ZIP. We get some code for printing out decimal numbers (WESDEC01.S) and another to show interrupt driven UART (HELLO_ISR.S). Reply #282 has a discussion of some new features. The second purposely uses a lot more ram and as a result uncovered an error in my orignal linker script. A new version of STM32.LD is included here with RAM set to 20k instead of 8k. Also a new version of the .ASMH file has more symbols defined to support the ISR program. Unzip into the same directory as first post then copy one of the new .S files to T.S and hit 'a'. At this point we have a set of tools up to the task for serious ARM development yet not beyond typical hobbyist abilities. A great contribution.
I've attached a new batch file (A.BAT) that not only compiles but can also flash the chip and then run the program with a single key. No need to touch the target board at all anymore. This has major productivity advantages compared to the popular GUI/IDE approach. One requirement is that the STM flash demo utility be installed in a root folder called "STMFLASH". Note that you now need to connect DTR from the USB/serial dongle to pin 7 (nrst) and also put your own port number in place of the "5" in that batch file. Now we can code, download, and run just as easily as with the STM8.