|
@@ -72,12 +72,12 @@ foreach(COMP ${CMSIS_FIND_COMPONENTS})
|
|
|
|
|
|
|
|
if(CMAKE_MATCH_2)
|
|
if(CMAKE_MATCH_2)
|
|
|
set(FAMILY ${CMAKE_MATCH_1})
|
|
set(FAMILY ${CMAKE_MATCH_1})
|
|
|
- set(DEVICES "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
|
|
|
|
|
- message(TRACE "FindCMSIS: full device name match for COMP ${COMP}, DEVICES is ${DEVICES}")
|
|
|
|
|
|
|
+ set(STM_DEVICES "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
|
|
|
|
|
+ message(TRACE "FindCMSIS: full device name match for COMP ${COMP}, STM_DEVICES is ${STM_DEVICES}")
|
|
|
else()
|
|
else()
|
|
|
set(FAMILY ${CMAKE_MATCH_1})
|
|
set(FAMILY ${CMAKE_MATCH_1})
|
|
|
- stm32_get_devices_by_family(DEVICES FAMILY ${FAMILY})
|
|
|
|
|
- message(TRACE "FindCMSIS: family only match for COMP ${COMP}, DEVICES is ${DEVICES}")
|
|
|
|
|
|
|
+ stm32_get_devices_by_family(STM_DEVICES FAMILY ${FAMILY})
|
|
|
|
|
+ message(TRACE "FindCMSIS: family only match for COMP ${COMP}, STM_DEVICES is ${STM_DEVICES}")
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
if(CMAKE_MATCH_3)
|
|
if(CMAKE_MATCH_3)
|
|
@@ -96,14 +96,15 @@ foreach(COMP ${CMSIS_FIND_COMPONENTS})
|
|
|
|
|
|
|
|
string(TOLOWER ${FAMILY} FAMILY_L)
|
|
string(TOLOWER ${FAMILY} FAMILY_L)
|
|
|
|
|
|
|
|
- if((NOT STM32_CMSIS_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH))
|
|
|
|
|
|
|
+ if((NOT STM32_CMSIS_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH) AND (DEFINED ENV{STM32_CUBE_${FAMILY}_PATH}))
|
|
|
# try to set path from environment variable. Note it could be ...-NOT-FOUND and it's fine
|
|
# try to set path from environment variable. Note it could be ...-NOT-FOUND and it's fine
|
|
|
set(STM32_CUBE_${FAMILY}_PATH $ENV{STM32_CUBE_${FAMILY}_PATH} CACHE PATH "Path to STM32Cube${FAMILY}")
|
|
set(STM32_CUBE_${FAMILY}_PATH $ENV{STM32_CUBE_${FAMILY}_PATH} CACHE PATH "Path to STM32Cube${FAMILY}")
|
|
|
|
|
+ message(STATUS "ENV STM32_CUBE_${FAMILY}_PATH specified, using STM32_CUBE_${FAMILY}_PATH: ${STM32_CUBE_${FAMILY}_PATH}")
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
if((NOT STM32_CMSIS_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH))
|
|
if((NOT STM32_CMSIS_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH))
|
|
|
set(STM32_CUBE_${FAMILY}_PATH /opt/STM32Cube${FAMILY} CACHE PATH "Path to STM32Cube${FAMILY}")
|
|
set(STM32_CUBE_${FAMILY}_PATH /opt/STM32Cube${FAMILY} CACHE PATH "Path to STM32Cube${FAMILY}")
|
|
|
- message(STATUS "Neither STM32_CUBE_${FAMILY}_PATH nor STM32_CMSIS_${FAMILY}_PATH specified using default STM32_CUBE_${FAMILY}_PATH: ${STM32_CUBE_${FAMILY}_PATH}")
|
|
|
|
|
|
|
+ message(STATUS "Neither STM32_CUBE_${FAMILY}_PATH nor STM32_CMSIS_${FAMILY}_PATH specified using default STM32_CUBE_${FAMILY}_PATH: ${STM32_CUBE_${FAMILY}_PATH}")
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
# search for Include/cmsis_gcc.h
|
|
# search for Include/cmsis_gcc.h
|
|
@@ -170,8 +171,8 @@ foreach(COMP ${CMSIS_FIND_COMPONENTS})
|
|
|
target_sources(CMSIS::STM32::${FAMILY}${CORE_C} INTERFACE "${CMSIS_${FAMILY}${CORE_U}_SOURCE}")
|
|
target_sources(CMSIS::STM32::${FAMILY}${CORE_C} INTERFACE "${CMSIS_${FAMILY}${CORE_U}_SOURCE}")
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
- set(DEVICES_FOUND TRUE)
|
|
|
|
|
- foreach(DEVICE ${DEVICES})
|
|
|
|
|
|
|
+ set(STM_DEVICES_FOUND TRUE)
|
|
|
|
|
+ foreach(DEVICE ${STM_DEVICES})
|
|
|
message(TRACE "FindCMSIS: Iterating DEVICE ${DEVICE}")
|
|
message(TRACE "FindCMSIS: Iterating DEVICE ${DEVICE}")
|
|
|
|
|
|
|
|
stm32_get_cores(DEV_CORES FAMILY ${FAMILY} DEVICE ${DEVICE})
|
|
stm32_get_cores(DEV_CORES FAMILY ${FAMILY} DEVICE ${DEVICE})
|
|
@@ -191,7 +192,7 @@ foreach(COMP ${CMSIS_FIND_COMPONENTS})
|
|
|
)
|
|
)
|
|
|
list(APPEND CMSIS_SOURCES "${CMSIS_${FAMILY}${CORE_U}_${TYPE}_STARTUP}")
|
|
list(APPEND CMSIS_SOURCES "${CMSIS_${FAMILY}${CORE_U}_${TYPE}_STARTUP}")
|
|
|
if(NOT CMSIS_${FAMILY}${CORE_U}_${TYPE}_STARTUP)
|
|
if(NOT CMSIS_${FAMILY}${CORE_U}_${TYPE}_STARTUP)
|
|
|
- set(DEVICES_FOUND FALSE)
|
|
|
|
|
|
|
+ set(STM_DEVICES_FOUND FALSE)
|
|
|
message(VERBOSE "FindCMSIS: did not find file: startup_stm32${TYPE_L}.s or startup_stm32${TYPE_L}${CORE_Ucm}.s")
|
|
message(VERBOSE "FindCMSIS: did not find file: startup_stm32${TYPE_L}.s or startup_stm32${TYPE_L}${CORE_Ucm}.s")
|
|
|
break()
|
|
break()
|
|
|
endif()
|
|
endif()
|
|
@@ -208,7 +209,7 @@ foreach(COMP ${CMSIS_FIND_COMPONENTS})
|
|
|
cmsis_generate_default_linker_script(${FAMILY} ${DEVICE} "${CORE}")
|
|
cmsis_generate_default_linker_script(${FAMILY} ${DEVICE} "${CORE}")
|
|
|
endforeach()
|
|
endforeach()
|
|
|
|
|
|
|
|
- if(DEVICES_FOUND)
|
|
|
|
|
|
|
+ if(STM_DEVICES_FOUND)
|
|
|
set(CMSIS_${COMP}_FOUND TRUE)
|
|
set(CMSIS_${COMP}_FOUND TRUE)
|
|
|
message(DEBUG "CMSIS_${COMP}_FOUND TRUE")
|
|
message(DEBUG "CMSIS_${COMP}_FOUND TRUE")
|
|
|
else()
|
|
else()
|