ChibiOS17_Kernel.cmake 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. LIST(FIND ChibiOS_FIND_COMPONENTS nil ChibiOS_FIND_COMPONENTS_nil)
  2. LIST(FIND ChibiOS_FIND_COMPONENTS rt ChibiOS_FIND_COMPONENTS_rt)
  3. IF((${ChibiOS_FIND_COMPONENTS_nil} LESS 0) AND (${ChibiOS_FIND_COMPONENTS_rt} LESS 0))
  4. MESSAGE(STATUS "No kernel component selected, using Nil kernel")
  5. LIST(APPEND ChibiOS_FIND_COMPONENTS nil)
  6. SET(CHIBIOS_KERNEL nil)
  7. ELSE()
  8. IF((NOT (${ChibiOS_FIND_COMPONENTS_nil} LESS 0)) AND (NOT (${ChibiOS_FIND_COMPONENTS_rt} LESS 0)))
  9. MESSAGE(FATAL_ERROR "Cannot use RT and Nil kernel at the same time")
  10. ENDIF()
  11. IF(NOT (${ChibiOS_FIND_COMPONENTS_nil} LESS 0))
  12. SET(CHIBIOS_KERNEL nil)
  13. ELSE()
  14. SET(CHIBIOS_KERNEL rt)
  15. ENDIF()
  16. ENDIF()
  17. SET(CHIBIOS_kernel_SEARCH_PATH
  18. ${CHIBIOS_ROOT}/os/license
  19. ${CHIBIOS_ROOT}/os/common/ports/ARMCMx
  20. ${CHIBIOS_ROOT}/os/common/ports/ARMCMx/compilers/GCC
  21. ${CHIBIOS_ROOT}/os/common/startup/ARMCMx/compilers/GCC
  22. ${CHIBIOS_ROOT}/os/common/oslib/src
  23. ${CHIBIOS_ROOT}/os/common/oslib/include
  24. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/include
  25. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/include
  26. )
  27. SET(CHIBIOS_kernel_SEARCH_HEADERS
  28. ch.h
  29. chcore.h
  30. chlicense.h
  31. chtypes.h
  32. cmparams.h
  33. chbsem.h
  34. chheap.h
  35. chmboxes.h
  36. chmemcore.h
  37. chmempools.h
  38. )
  39. SET(CHIBIOS_kernel_SOURCES
  40. chcore.c
  41. crt1.c
  42. vectors.c
  43. chheap.c
  44. chmboxes.c
  45. chmemcore.c
  46. chmempools.c
  47. )
  48. IF(STM32_FAMILY STREQUAL "F0")
  49. SET(CHIBIOS_kernel_SEARCH_PATH
  50. ${CHIBIOS_kernel_SEARCH_PATH}
  51. ${CHIBIOS_ROOT}/os/common/startup/ARMCMx/devices/STM32F0xx
  52. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/ST/STM32F0xx
  53. )
  54. SET(CHIBIOS_kernel_SEARCH_HEADERS
  55. ${CHIBIOS_kernel_SEARCH_HEADERS}
  56. core_cm0.h
  57. stm32f0xx.h
  58. )
  59. SET(CHIBIOS_kernel_SOURCES
  60. ${CHIBIOS_kernel_SOURCES}
  61. crt0_v6m.S
  62. chcore_v6m.c
  63. chcoreasm_v6m.S
  64. )
  65. ELSEIF(STM32_FAMILY STREQUAL "F1")
  66. SET(CHIBIOS_kernel_SEARCH_PATH
  67. ${CHIBIOS_kernel_SEARCH_PATH}
  68. ${CHIBIOS_ROOT}/os/common/startup/ARMCMx/devices/STM32F1xx
  69. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/ST/STM32F1xx
  70. )
  71. SET(CHIBIOS_kernel_SEARCH_HEADERS
  72. ${CHIBIOS_kernel_SEARCH_HEADERS}
  73. core_cm3.h
  74. stm32f1xx.h
  75. )
  76. SET(CHIBIOS_kernel_SOURCES
  77. ${CHIBIOS_kernel_SOURCES}
  78. crt0_v7m.S
  79. chcore_v7m.c
  80. chcoreasm_v7m.S
  81. )
  82. ELSEIF(STM32_FAMILY STREQUAL "F4")
  83. SET(CHIBIOS_kernel_SEARCH_PATH
  84. ${CHIBIOS_kernel_SEARCH_PATH}
  85. ${CHIBIOS_ROOT}/os/common/startup/ARMCMx/devices/STM32F4xx
  86. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/ST/STM32F4xx
  87. )
  88. SET(CHIBIOS_kernel_SEARCH_HEADERS
  89. ${CHIBIOS_kernel_SEARCH_HEADERS}
  90. core_cm4.h
  91. stm32f4xx.h
  92. )
  93. SET(CHIBIOS_kernel_SOURCES
  94. ${CHIBIOS_kernel_SOURCES}
  95. crt0_v7m.S
  96. chcore_v7m.c
  97. chcoreasm_v7m.S
  98. )
  99. ELSEIF(STM32_FAMILY STREQUAL "L0")
  100. SET(CHIBIOS_kernel_SEARCH_PATH
  101. ${CHIBIOS_kernel_SEARCH_PATH}
  102. ${CHIBIOS_ROOT}/os/common/startup/ARMCMx/devices/STM32L0xx
  103. ${CHIBIOS_ROOT}/os/common/ext/CMSIS/ST/STM32L0xx
  104. )
  105. SET(CHIBIOS_kernel_SEARCH_HEADERS
  106. ${CHIBIOS_kernel_SEARCH_HEADERS}
  107. core_cm0.h
  108. stm32l0xx.h
  109. )
  110. SET(CHIBIOS_kernel_SOURCES
  111. ${CHIBIOS_kernel_SOURCES}
  112. crt0_v6m.S
  113. chcore_v6m.c
  114. chcoreasm_v6m.S
  115. )
  116. ENDIF()
  117. SET(CHIBIOS_nil_SEARCH_PATH
  118. ${CHIBIOS_kernel_SEARCH_PATH}
  119. ${CHIBIOS_ROOT}/os/nil/src
  120. ${CHIBIOS_ROOT}/os/nil/include
  121. )
  122. SET(CHIBIOS_rt_SEARCH_PATH
  123. ${CHIBIOS_kernel_SEARCH_PATH}
  124. ${CHIBIOS_ROOT}/os/rt/src
  125. ${CHIBIOS_ROOT}/os/rt/include
  126. )
  127. SET(CHIBIOS_nil_SEARCH_HEADERS
  128. ${CHIBIOS_kernel_SEARCH_HEADERS}
  129. )
  130. SET(CHIBIOS_rt_SEARCH_HEADERS
  131. ${CHIBIOS_kernel_SEARCH_HEADERS}
  132. ch.h
  133. chalign.h
  134. chchecks.h
  135. chcond.h
  136. chdebug.h
  137. chdynamic.h
  138. chevents.h
  139. chmsg.h
  140. chmtx.h
  141. chregistry.h
  142. chschd.h
  143. chsem.h
  144. chstats.h
  145. chsys.h
  146. chsystypes.h
  147. chthreads.h
  148. chtm.h
  149. chtrace.h
  150. chvt.h
  151. )
  152. SET(CHIBIOS_nil_SOURCES
  153. ${CHIBIOS_kernel_SOURCES}
  154. ch.c
  155. )
  156. SET(CHIBIOS_rt_SOURCES
  157. ${CHIBIOS_kernel_SOURCES}
  158. chcond.c
  159. chdebug.c
  160. chdynamic.c
  161. chevents.c
  162. chmsg.c
  163. chmtx.c
  164. chregistry.c
  165. chschd.c
  166. chsem.c
  167. chstats.c
  168. chsys.c
  169. chthreads.c
  170. chtm.c
  171. chtrace.c
  172. chvt.c
  173. )