| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- function(stm32_add_cmsis TARGET)
- stm32_get_chip(${TARGET} FAMILY DEVICE)
- stm32_get_type(${FAMILY} ${DEVICE} TYPE)
- string(TOLOWER ${FAMILY} FAMILY_L)
- string(TOLOWER ${DEVICE} DEVICE_L)
- string(TOLOWER ${TYPE} TYPE_L)
-
- if(NOT STM32_CUBE_${FAMILY}_PATH)
- set(STM32_CUBE_${FAMILY}_PATH /opt/STM32Cube_FW_${FAMILY} CACHE PATH "Path to STM32Cube_FW_${FAMILY}")
- message(STATUS "No STM32_CUBE_${FAMILY}_PATH specified using default: ${STM32_CUBE_${FAMILY}_PATH}")
- endif()
-
- set(CMSIS_PATH "${STM32_CUBE_${FAMILY}_PATH}/Drivers/CMSIS")
-
- find_path(STM32_CMSIS_${FAMILY}_COMMON_INCLUDE
- NAMES cmsis_version.h
- PATHS "${CMSIS_PATH}/Include"
- NO_DEFAULT_PATH
- )
- find_path(STM32_CMSIS_${FAMILY}_INCLUDE
- NAMES stm32${FAMILY_L}xx.h
- PATHS "${CMSIS_PATH}/Device/ST/STM32${FAMILY}xx/Include"
- NO_DEFAULT_PATH
- )
- find_file(STM32_CMSIS_${FAMILY}_SOURCE
- NAMES system_stm32${FAMILY_L}xx.c
- PATHS "${CMSIS_PATH}/Device/ST/STM32${FAMILY}xx/Source/Templates"
- NO_DEFAULT_PATH
- )
- find_file(STM32_CMSIS_${FAMILY}_${TYPE}_STARTUP
- NAMES startup_stm32f${TYPE_L}.s
- PATHS "${CMSIS_PATH}/Device/ST/STM32${FAMILY}xx/Source/Templates/gcc"
- NO_DEFAULT_PATH
- )
- if((NOT STM32_CMSIS_${FAMILY}_COMMON_INCLUDE) OR
- (NOT STM32_CMSIS_${FAMILY}_INCLUDE) OR
- (NOT STM32_CMSIS_${FAMILY}_SOURCE) OR
- (NOT STM32_CMSIS_${FAMILY}_${TYPE}_STARTUP))
- message(FATAL_ERROR "Cannot find CMSIS. Make sure STM32_CUBE_${FAMILY}_PATH contains path to STM32Cube_FW_${FAMILY}.")
- endif()
-
- target_include_directories(${TARGET} PRIVATE
- ${STM32_CMSIS_${FAMILY}_COMMON_INCLUDE}
- ${STM32_CMSIS_${FAMILY}_INCLUDE}
- )
- target_sources(${TARGET} PRIVATE
- ${STM32_CMSIS_${FAMILY}_${TYPE}_STARTUP}
- ${STM32_CMSIS_${FAMILY}_SOURCE}
- )
- endfunction()
|