I really like the STM32 family of ARM microcontrollers. This breakout board is a narrow design that fits perfectly on a breadboard.
Every pin is accessible. It has USB, a reset button, and a bootload button. The chip itself has a permanent USB bootloader that is activated by the bootload button. This means that no equipment is required to program this microcontroller, no expensive debugger, nothing at all except a USB cable.
I will assume you know how to compile a program for STM32F4 already. You should have either a *.hex or *.bin file.
First, read ST’s application note AN2606. Inside, it describes how the bootloader works and how it’s activated. Basically upon reset (or power up), the bootload button is sampled, and if it is pressed, it will enter the bootloader mode. If it is not pressed, then the code that the user previously programmed will run.
ST’s application note AN3156 describes the protocol used in the USB DFU bootloader. You don’t need to read this but it’s interesting.
You need to download a tool called DfuSE Demo (UM0412 and STSW-STM32080), written by ST. This tool will let you program a *.dfu file into the microcontroller, if it is in USB DFU bootloader mode.
To generate a *.dfu file, there’s a “DFU File Manager” program that is included with “Dfuse Demo”.
For more detail: STM32F4Stamp, a Breakout Board for STM32F4