Просмотр исходного кода

Added support for V2 CMSIS OS using `FREERTOS_CMSIS_V2`

Alex Hoffman 5 лет назад
Родитель
Сommit
c1215e5395
1 измененных файлов с 33 добавлено и 11 удалено
  1. 33 11
      cmake/FindFreeRTOS.cmake

+ 33 - 11
cmake/FindFreeRTOS.cmake

@@ -44,7 +44,11 @@ SET(FREERTOS_HEADERS
 	timers.h
 	timers.h
 )
 )
 
 
-SET(CMSIS_OS_SRC_FILE cmsis_os.c)
+IF(FREERTOS_CMSIS_V2)
+    SET(CMSIS_OS_SRC_FILE cmsis_os1.c)
+ELSE()
+    SET(CMSIS_OS_SRC_FILE cmsis_os.c)
+ENDIF()
 SET(CMSIS_OS_INC_FILE cmsis_os.h)
 SET(CMSIS_OS_INC_FILE cmsis_os.h)
 
 
 SET(PORT_ARM_SRC_FILE port.c)
 SET(PORT_ARM_SRC_FILE port.c)
@@ -62,11 +66,20 @@ FIND_PATH(FREERTOS_COMMON_INC_DIR ${FREERTOS_HEADERS}
 	CMAKE_FIND_ROOT_PATH_BOTH
 	CMAKE_FIND_ROOT_PATH_BOTH
 )
 )
 
 
-FIND_PATH(CMSIS_OS_INC_DIR ${CMSIS_OS_INC_FILE}
-	PATH_SUFFIXES CMSIS_RTOS
-	HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
-	CMAKE_FIND_ROOT_PATH_BOTH
-)
+SET(CMSIS_OS_INC_DIR CMSIS_OS_INC_DIR-NOTFOUND)
+IF(FREERTOS_CMSIS_V2)
+    FIND_PATH(CMSIS_OS_INC_DIR ${CMSIS_OS_INC_FILE}
+        PATH_SUFFIXES CMSIS_RTOS_V2
+        HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
+        CMAKE_FIND_ROOT_PATH_BOTH
+        )
+ELSE()
+    FIND_PATH(CMSIS_OS_INC_DIR ${CMSIS_OS_INC_FILE}
+        PATH_SUFFIXES CMSIS_RTOS
+        HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
+        CMAKE_FIND_ROOT_PATH_BOTH
+        )
+ENDIF()
 
 
 FIND_PATH(PORTMACRO_INC_DIR ${PORTMACRO_ARM_HEADER}
 FIND_PATH(PORTMACRO_INC_DIR ${PORTMACRO_ARM_HEADER}
 	PATH_SUFFIXES ARM_${PORT_GCC_DIR_SUFFIX}
 	PATH_SUFFIXES ARM_${PORT_GCC_DIR_SUFFIX}
@@ -84,11 +97,20 @@ FOREACH(SRC ${FREERTOS_SRC_FILES})
 	LIST(APPEND FREERTOS_SOURCES ${FREERTOS_${SRC_CLEAN}_FILE})
 	LIST(APPEND FREERTOS_SOURCES ${FREERTOS_${SRC_CLEAN}_FILE})
 ENDFOREACH()
 ENDFOREACH()
 
 
-FIND_FILE(CMSIS_OS_SOURCE ${CMSIS_OS_SRC_FILE}
-	PATH_SUFFIXES CMSIS_RTOS
-	HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
-	CMAKE_FIND_ROOT_PATH_BOTH
-)
+SET(CMSIS_OS_SOURCE ${CMSIS_OS_SRC_FILE}-NOTFOUND)
+IF(FREERTOS_CMSIS_V2)
+    FIND_FILE(CMSIS_OS_SOURCE ${CMSIS_OS_SRC_FILE}
+        PATH_SUFFIXES CMSIS_RTOS_V2
+        HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
+        CMAKE_FIND_ROOT_PATH_BOTH
+        )
+ELSE()
+    FIND_FILE(CMSIS_OS_SOURCE ${CMSIS_OS_SRC_FILE}
+        PATH_SUFFIXES CMSIS_RTOS
+        HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FreeRTOS/Source
+        CMAKE_FIND_ROOT_PATH_BOTH
+        )
+ENDIF()
 
 
 FIND_FILE(PORT_ARM_SOURCE ${PORT_ARM_SRC_FILE}
 FIND_FILE(PORT_ARM_SOURCE ${PORT_ARM_SRC_FILE}
 	PATH_SUFFIXES ARM_${PORT_GCC_DIR_SUFFIX}
 	PATH_SUFFIXES ARM_${PORT_GCC_DIR_SUFFIX}