cmake_minimum_required(VERSION 3.16) set(FLASHER_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) set(CMAKE_TOOLCHAIN_FILE ${FLASHER_DIR}/submodules/stm32-cmake/cmake/stm32_gcc.cmake) project(stm32_flasher C ASM) find_package(CMSIS COMPONENTS STM32H7_M7 REQUIRED) find_package(HAL COMPONENTS STM32H7_M7 PWR RCC GPIO UART CORTEX REQUIRED) include_directories(${CMAKE_CURRENT_SOURCE_DIR} Core/Inc) # Convert binary files to C source files using bin2array.cmake include(${CMAKE_SOURCE_DIR}/../common/bin2array.cmake) create_resources(${CMAKE_SOURCE_DIR}/target-firmware ${CMAKE_CURRENT_BINARY_DIR}/target_firmware_data.c) set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/target_firmware_data.c PROPERTY GENERATED 1) add_executable(${CMAKE_PROJECT_NAME} ../common/example_common.c Core/Src/main.c Core/Src/stm32h7xx_hal_msp.c Core/Src/stm32h7xx_it.c Core/Src/libc_compat.c ${CMAKE_CURRENT_BINARY_DIR}/target_firmware_data.c ) target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ../common) set(PORT STM32) set(STM32_CHIP STM32H743VI) set(CORE_USED M7) add_subdirectory(${FLASHER_DIR} ${CMAKE_BINARY_DIR}/flasher) target_compile_options(flasher PRIVATE -Wunused-parameter -Wshadow ) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE HAL::STM32::H7::M7::PWREx HAL::STM32::H7::M7::RCCEx HAL::STM32::H7::M7::GPIO HAL::STM32::H7::M7::UARTEx HAL::STM32::H7::M7::CORTEX CMSIS::STM32::H743VI::M7 STM32::Nano flasher ) stm32_print_size_of_target(${CMAKE_PROJECT_NAME}) stm32_generate_binary_file(${CMAKE_PROJECT_NAME}) stm32_generate_hex_file(${CMAKE_PROJECT_NAME})