Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A bare-bones project directory for an STM32. Includes the ST libraries, bootloader code, etc.
C Assembly C++ Other
Branch: master

fix compile error in lib/CMSIS_CM3/core_cm3.c

Signed-off-by: Adam Greig <>
latest commit 501f4564ae
@hansfbaier hansfbaier authored committed
Failed to load latest commit information.
main.c Fixed permissions, updated Makefile to new library versions


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.



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.

 * released by Ivan A-R of and modified by P. Harrison.

 * Compilation by Adam Greig of and released into
   the public domain, September 2009.
Something went wrong with that request. Please try again.