Нет описания

Konstantin Oblaukhov 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
cmake 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
cmsis 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
cmsis-3.0 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
stdperiph 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
stm32-blinky 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
stm32-newlib 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
stm32-template 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
README.mediawiki 24e71bbfc1 Fix readme 14 лет назад
gcc_stm32.cmake 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад
gcc_stm32f1.cmake 46199d69c8 Scripts rewritten for more flexibility. 12 лет назад

README.mediawiki

== About ==
This project is used to develop applications for stm32 - ST's ARM Cortex-M3 MCUs, using cmake, GCC, newlib (libc) and STM32F10x Standard Peripherals Library.

Requirements:
* cmake >= 2.6
* GCC toolchain with newlib.
* STM32F10x Standard Peripherals Library
Project contains:
* CMake toolchain file, that configures cmake to use arm toolchain.
* CMake projects that builds CMSIS and STM32F10x Standard Peripherals Library into static libraries.
* CMake modules to find and configure CMSIS ans StdPeriphLib libraries.
* CMake project template.
* Example projects
** blinky - blink LED using timers and PWM.
** newlib - show date from RTC using uart and libc functions from newlib

== Building & Installing ==
First of all you need to configure toolchain and libraries, you can do this by editing gcc_stm32.cmake or pass it throught command line.
Variables for toolchain:
* TOOLCHAIN_PREFIX - where toolchain is located, '''default''': /usr
* TARGET_TRIPLET - toolchain target triplet, '''default''': arm-none-eabi
Variables for CMSIS and StdPeriphLib:
* STM32_StdPeriphLib_DIR - path to STM32F10x Standard Peripherals Library '''default''': /opt/STM32F10x_StdPeriph_Lib_V3.5.0
* USE_ASSERT - Use internal asserts in Standard Peripherals Library.

=== Build CMSIS and Standard Peripherals Library ===
In cmsis folder:
cmake -DCMAKE_TOOLCHAIN_FILE=../gcc_stm32.cmake -DCMAKE_INSTALL_PREFIX=/arm-none-eabi/ -DCMAKE_BUILD_TYPE=Release
make && make install
In stdperiph folder
cmake -DCMAKE_TOOLCHAIN_FILE=../gcc_stm32.cmake -DCMAKE_INSTALL_PREFIX=/arm-none-eabi/ -DCMAKE_BUILD_TYPE=Release
make && make install
'''Note:''' You can use different CMAKE_INSTALL_PREFIX, but than you'll have to configure cmake search paths when using cmake modules.

'''Note:''' To prevent header collision file "misc.h" from Standard Peripherals Library will be installed as stm32f10x_misc.h

== Usage ==
After building you need to copy cmake modules in cmake's modules path, or just set CMAKE_MODULE_PATH in project.
Than you need to adjust some variables in CMakeLists.txt (example for stm32f103ve):
* PROJECT(stm32-template) - Set the project name.
* FIND_PACKAGE(StdPeriphLib REQUIRED) - comment/remove this if you don't need StdPeriphLib. CMSIS package are always required.
* STM32_SET_PARAMS("512K" "64K" "0x20010000") - Set chip's flash size, ram size, and stack bottom address. Also, you can change min heap size, stack size, etc. - look into FindCMSIS.cmake
* All projects sources should be listed in PROJECT_SOURCES variable.
Also, if you using StdPeriphLib you need to adjust modules in stm32f10x_conf.h.

=== Build ===
Generate Makefile:
cmake -DSTM32_CHIP_TYPE= -DCMAKE_TOOLCHAIN_FILE= -DCMAKE_BUILD_TYPE=Debug
Where :
* HD - High Density MCUs
* HD_VL - High Density Value Line MCUs
* MD - Medium Density MCUs
* MD_VL - Medium Density Value Line MCUs
* LD - Low Density MCUs
* LD_VL - Low Density Value Line MCUs
* CL - Connectivity Line MCUs
* XL - XL Density MCUs
Build:
make
The result is a .elf file, to build .hex:
make .hex
or .bin:
make .bin
For using with Eclipse CDT:
cmake -DSTM32_CHIP_TYPE= -DCMAKE_TOOLCHAIN_FILE= -DCMAKE_BUILD_TYPE=Debug -G "Eclipse CDT4 - Unix Makefiles"
For release build:
cmake -DSTM32_CHIP_TYPE= -DCMAKE_TOOLCHAIN_FILE= -DCMAKE_BUILD_TYPE=Release