CMake 是一個跨平臺的自動化建構系統,它使用一個名爲 CMakeLists.txt 的文件來描述構建過程, 能夠產生標準的構建文件,如 Unix 的 Makefile 或Windows Visual Studio 的 projects/workspaces 。linux
使用CMake來構建STM32工程,生成不一樣的構建文件, 如生成Visual Studio或Eclipse的工程文件,再配置好編譯環境,咱們就能夠根據我的喜愛選擇IDE來開發STM32項目了。git
首先建立/opt/stm32-toolchain目錄,所需的工具資源都會放在該目錄下。github
配置toolchain的第一步是安裝ARM Cortex-M和Cortex-R對應的GCC,包括預編譯器、編譯器和連接器等一系列工具。 最新版的GCC ARM能夠從launchpad下載,這裏使用的是gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 下載後解壓在/opt/stm32-toolchain/gcc-arm目錄下。web
STM32Cube是一個全面的軟件平臺,包括了ST產品的每一個系列。(STM32CubeF4 是針對STM32F4系列). 這裏選擇stm32cubef4.zip,最新版本能夠去ST下載。 下載後解壓在/opt/stm32-toolchain/stm32-cube目錄下。工具
stm32-cmake是一個使用CMake、GCC和STM32CubeMX來開發STM32應用的開源項目。spa
cd /opt/stm32-toolchain/ git clone https://github.com/ObKo/stm32-cmake.git
首先得安裝好CMake,CMake的版本不得低於2.8。 安裝好CMake以後,在須要構建的STM32工程中建立好所需的CMakeLists.txt文件。 項目工程所需的CMakeLists.txt編寫完成以後,使用stm32-cmake來構建工程。 下面的命令生成適用Eclipse的工程文件:.net
cmake -DSTM32_CHIP=STM32F407IG -DCMAKE_TOOLCHAIN_FILE=/opt/stm32-toolchain/stm32-cmake/cmake/gcc_stm32.cmake -DCMAKE_BUILD_TYPE=Debug -DTOOLCHAIN_PREFIX=/opt/stm32-toolchain/gcc-arm/gcc-arm-none-eabi-4_9-2015q3 -DSTM32Cube_DIR=/opt/stm32-toolchain/stm32-cube/STM32Cube_FW_F4_V1.9.0 -DCMAKE_MODULE_PATH=/opt/stm32-toolchain/stm32-cmake/cmake -G "Eclipse CDT4 - Unix Makefiles" <path_to_source_dir>