cmake-cmsis-stm32

CMake module containing CMSIS headers for STMicroelectronics Series of ARM Cortex-M microcontrollers.

How to use

Edit your main CMakeLists.txt file and add the following snippet before the project() call:

include(FetchContent)

FetchContent_Declare(cmake_cmsis_stm32
    GIT_REPOSITORY https://github.com/rafaelmartins/cmake-cmsis-stm32.git
)
FetchContent_MakeAvailable(cmake_cmsis_stm32)

Consider adding a GIT_TAG parameter to FetchContent_Declare() to pin your project to a specific commit in this repository.

Assuming that there's a main target defined in your CMakeLists.txt file, add the following snipped to create the cmsis-stm32-specific targets:

cmsis_stm32_target(main
    DEVICE STM32F042x6
    VERSION 20240709193138
    LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/STM32F042KxTx_FLASH.ld
    ADDITIONAL_OUTPUTS BIN MAP IHEX DFU
    SHOW_SIZE ON
    STLINK ON
    INSTALL ON
)

The DEVICE parameter should contain the device definition for the microcontroller being used, as expected by the device's headers.

The VERSION parameter should point to a cmsis-stm32 release.

The LINKER_SCRIPT must exist is not handled automatically by this project; it must be provided by the user. As we use the default startup scripts from ST, it is recommended to use linker scripts created by STM32CubeMX because they define the variables expected by the startup scripts.

The ADDITIONAL_OUTPUTS parameters contain a space-separated list of formats to be generated, other than a ELF binary.

The SHOW_SIZE parameter enables showing the size of the binary after building them.

The STLINK parameter creates targets to allow interacting with the microcontroller using stlink.

The INSTALL parameter adds the generated files to install target. This is useful when generating distribution tarballs using CPack.

License

This code is released under a BSD 3-Clause License.

Project Metadata
Main License: BSD-3-Clause
Project Statistics
Stars: 0
Watching: 1
Forks: 0
Updated: