cmake_minimum_required(VERSION 3.16) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/stm32_gcc.cmake) project(PentaTrack C CXX ASM) set(MAIN_SOURCE_FILE main.cpp) set(CMAKE_INCLUDE_CURRENT_DIR TRUE) set(HAL_COMP_LIST RCC GPIO CORTEX UART SPI DMA) set(CMSIS_COMP_LIST "") list(APPEND CMSIS_COMP_LIST STM32F1) list(APPEND HAL_COMP_LIST STM32F1) find_package(CMSIS COMPONENTS STM32F1 REQUIRED) find_package(HAL COMPONENTS "${HAL_COMP_LIST}" REQUIRED) # Find all device specific drivers: #find_package(HAL COMPONENTS STM32L0 STM32F1 STM32F4 REQUIRED) # Find drivers for all families: #find_package(HAL COMPONENTS RCC GPIO CORTEX REQUIRED) # Find LL driver: #find_package(HAL COMPONENTS LL_GPIO REQUIRED) # Find everything: #find_package(HAL REQUIRED) # STM32VL-Discovery add_executable(PentaTrack ${MAIN_SOURCE_FILE} logging.cpp uart_handler.cpp spi.cpp rfm95.cpp commons.cpp stm32f1xx_it.c stm32f1xx_hal_conf.h ) set_property(TARGET PentaTrack PROPERTY CXX_STANDARD 20) target_link_libraries(PentaTrack HAL::STM32::F1::UART HAL::STM32::F1::RCC HAL::STM32::F1::GPIO HAL::STM32::F1::CORTEX HAL::STM32::F1::SPI HAL::STM32::F1::DMA CMSIS::STM32::F100RB STM32::NoSys ) stm32_print_size_of_target(PentaTrack) #stm32_get_memory_info(FAMILY F1 DEVICE F100RB)