A bare-bones project directory for an STM32. Includes the ST libraries, bootloader code, etc.
C Assembly C++ Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Update 27 Aug 2013:
These days I would recommend using gcc-arm-embedded [1] with libopenCM3 [2]
to provide everything you need to build projects for STM32 chips! Years ago
all this faffing around was required but today these projects make life
much much happier.

[1] https://launchpad.net/gcc-arm-embedded
[2] http://libopencm3.org/wiki/Main_Page


This is a skeleton project for an STM32F10x series device, using the
GCC compiler (either vanilla or CodeSourcery).

It is initially configured for a medium density STM32F103.
To change target device, edit:
    stm.ld: update RAM and FLASH sizes in the MEMORY section
    makefile: update variables at the top of the file
    lib/CMSIS_CM3/system_stm32f10x.c: set system clock frequency and periphal
                                frequencies as fractions of the system clock

Put interrupt vectors into interrupts.c (and prototypes into .h) or any other
c file which will be compiled into the final binary. Valid interrupt vector
names are given in lib/CMSIS/startup/gcc/startup_stm32f10x_*.s at the bottom.

Update lib/STM32F10x_StdPeriph_Driver/stm32f10x_conf.h to set which peripheral
functions you wish to use from the library.

If using the USB library, you may need to edit lib/STM32_USB-FS-Device_Driver/
usb_conf.h depending on your application. You'll also need the various usb_*
files for USB projects, such as pwr, prop, istr, endp and desc.

A python script to send binary images to an STM32 via the serial bootloader
is also included. Edit appropriate settings in the makefile and make sure BOOT0
is pulled high on reset, then 'make reload'. Change BOOT0 to low to boot from
flash memory after bootloading.

JTAG configuration files are provided but untested and may require modification
for your programmer or device type.


 * STM32 libraries copyright 2009-2011 STMicroelectronics.
   License details given in each source file.

 * CMSIS library and code copyright ARM and STMicroelectronics.
   License details given in each source file.

 * Linker script copyright RAISONANCE S.A.S. 2008 and modified by P. Harrison of

 * Makefiles and JTAG configuration based on those released into the public domain
   by Lanchon of the ST forums.

 * stm32loader.py released by Ivan A-R of
   http://tuxotronic.org/wiki/projects/stm32loader and modified by P. Harrison.

 * Compilation by Adam Greig of https://github.com/adamgreig and released into
   the public domain, September 2009.