Updated April, 2018.
This is a tutorial on setting up a complete developing environment on Linux OS by using a free and open tools. The official ARM (GNU Tools for ARM Embedded Processors) GCC toolchain, OpenOCD and Texane's ST-Link debugger/programmer utilities will be used.
The ARM Cortex-M0 is a 32-bit core that strikes an excellent balance between performance, power usage and price. It may not be as sophisticated and powerful as its older siblings the ARM Cortex-M3 and M4, but its simplicity, ease of use, lower cost and reduced power consumption easily makes up for that. The ARM Cortex-M0 core was designed to compete with other 8-bit/16-bit microcontroller cores like ARM and PIC and it succeeds in this goal on all major fronts; performance, low power, low price and short time to market.
The STM32F0 Microcontroller family has a very generous dose of hardware peripherals generous memory options and now more packaging options that include 20 pin TSSOP(0.65mm) and 32 pin LQFP (0.8mm), both of which are easier to hand solder than the classic 0.5mm QFP and QFN packages that are the norm for 32-bit microcontrollers.
The toolchain mentioned above (GNU Tools for ARM Embedded Processors) is actively developed by ARM engineers and is used in many Commercial IDEs. It is free, complete, has no limitations and is regularly updated. Be sure to download the Linux version from the Toolchain Website.