configPlatform.cmake 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. option(SEMIHOSTING "Test trace using printf" OFF)
  2. if (PLATFORM STREQUAL "FVP")
  3. SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/FVP)
  4. SET(PLATFORMID "FVP")
  5. SET(PLATFORMOPT "-DFVP")
  6. list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/FVP)
  7. endif()
  8. if (PLATFORM STREQUAL "NORMALFVP")
  9. SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/NORMALFVP)
  10. SET(PLATFORMID "NORMALFVP")
  11. SET(PLATFORMOPT "-DNORMALFVP")
  12. list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/NORMALFVP)
  13. endif()
  14. if (PLATFORM STREQUAL "MPS3")
  15. SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/MPS3)
  16. SET(PLATFORMID "MPS3")
  17. list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/MPS3)
  18. endif()
  19. if (PLATFORM STREQUAL "SDSIM")
  20. SET(PLATFORMFOLDER ${SDSIMROOT})
  21. SET(PLATFORMID "SDSIM")
  22. list(APPEND CMAKE_MODULE_PATH ${SDSIMROOT})
  23. endif()
  24. if (PLATFORM STREQUAL "IPSS")
  25. SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/IPSS)
  26. SET(PLATFORMID "IPSS")
  27. list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/IPSS)
  28. endif()
  29. SET(CORE ARMCM7)
  30. include(platform)
  31. function(set_platform_core)
  32. if(EXPERIMENTAL)
  33. experimental_set_platform_core()
  34. SET(CORE ${CORE} PARENT_SCOPE)
  35. endif()
  36. ###################
  37. #
  38. # Cortex cortex-m7
  39. #
  40. if (ARM_CPU MATCHES "^[cC]ortex-[mM]7([^0-9].*)?$")
  41. SET(CORE ARMCM7 PARENT_SCOPE)
  42. endif()
  43. ###################
  44. #
  45. # Cortex cortex-m4
  46. #
  47. if (ARM_CPU MATCHES "^[cC]ortex-[mM]4([^0-9].*)?$")
  48. SET(CORE ARMCM4 PARENT_SCOPE)
  49. endif()
  50. ###################
  51. #
  52. # Cortex cortex-m35p
  53. #
  54. if (ARM_CPU MATCHES "^[cC]ortex-[mM]35([^0-9].*)?$")
  55. SET(CORE ARMCM35P PARENT_SCOPE)
  56. endif()
  57. ###################
  58. #
  59. # Cortex cortex-m33
  60. #
  61. if (ARM_CPU MATCHES "^[cC]ortex-[mM]33([^0-9].*)?$")
  62. SET(CORE ARMCM33 PARENT_SCOPE)
  63. endif()
  64. ###################
  65. #
  66. # Cortex cortex-m55
  67. #
  68. if (ARM_CPU MATCHES "^[cC]ortex-[mM]55([^0-9].*)?$")
  69. SET(CORE ARMv81MML PARENT_SCOPE)
  70. endif()
  71. ###################
  72. #
  73. # Cortex cortex-m23
  74. #
  75. if (ARM_CPU MATCHES "^[cC]ortex-[mM]23([^0-9].*)?$")
  76. SET(CORE ARMCM23 PARENT_SCOPE)
  77. endif()
  78. ###################
  79. #
  80. # Cortex cortex-m0+
  81. #
  82. if (ARM_CPU MATCHES "^[cC]ortex-[mM]0p([^0-9].*)?$")
  83. SET(CORE ARMCM0plus PARENT_SCOPE)
  84. endif()
  85. ###################
  86. #
  87. # Cortex cortex-m0
  88. #
  89. if (ARM_CPU MATCHES "^[cC]ortex-[mM]0([^0-9].*)?$")
  90. SET(CORE ARMCM0 PARENT_SCOPE)
  91. endif()
  92. ###################
  93. #
  94. # Cortex cortex-a32
  95. #
  96. if (ARM_CPU MATCHES "^[cC]ortex-[aA]32([^0-9].*)?$")
  97. SET(CORE ARMCA32 PARENT_SCOPE)
  98. endif()
  99. ###################
  100. #
  101. # Cortex cortex-a5
  102. #
  103. if (ARM_CPU MATCHES "^[cC]ortex-[aA]5([^0-9].*)?$")
  104. SET(CORE ARMCA5 PARENT_SCOPE)
  105. endif()
  106. ###################
  107. #
  108. # Cortex cortex-a7
  109. #
  110. if (ARM_CPU MATCHES "^[cC]ortex-[aA]7([^0-9].*)?$")
  111. SET(CORE ARMCA7 PARENT_SCOPE)
  112. endif()
  113. ###################
  114. #
  115. # Cortex cortex-a9
  116. #
  117. if (ARM_CPU MATCHES "^[cC]ortex-[aA]9([^0-9].*)?$")
  118. SET(CORE ARMCA9 PARENT_SCOPE)
  119. endif()
  120. ###################
  121. #
  122. # Cortex cortex-a15
  123. #
  124. if (ARM_CPU MATCHES "^[cC]ortex-[aA]15([^0-9].*)?$")
  125. SET(CORE ARMCA15 PARENT_SCOPE)
  126. endif()
  127. ###################
  128. #
  129. # Cortex cortex-r5
  130. #
  131. if (ARM_CPU MATCHES "^[cC]ortex-[rR]5([^0-9].*)?$")
  132. SET(CORE ARMCR5 PARENT_SCOPE)
  133. endif()
  134. ###################
  135. #
  136. # Cortex cortex-r8
  137. #
  138. if (ARM_CPU MATCHES "^[cC]ortex-[rR]8([^0-9].*)?$")
  139. SET(CORE ARMCR8 PARENT_SCOPE)
  140. endif()
  141. ###################
  142. #
  143. # Cortex cortex-r52
  144. #
  145. if (ARM_CPU MATCHES "^[cC]ortex-[rR]52([^0-9].*)?$")
  146. SET(CORE ARMCR52 PARENT_SCOPE)
  147. endif()
  148. endfunction()
  149. function(core_includes PROJECTNAME)
  150. if (CORTEXR)
  151. target_include_directories(${PROJECTNAME} PRIVATE ${CORER}/Include)
  152. else()
  153. target_include_directories(${PROJECTNAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/Include)
  154. #target_compile_options(${PROJECTNAME} PRIVATE ${PLATFORMOPT})
  155. endif()
  156. endfunction()
  157. function (configplatformForLib PROJECTNAME ROOT)
  158. if (SEMIHOSTING)
  159. target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
  160. endif()
  161. if (CORTEXM)
  162. compilerSpecificPlatformConfigLibForM(${PROJECTNAME} ${ROOT} )
  163. elseif(CORTEXA)
  164. compilerSpecificPlatformConfigLibForA(${PROJECTNAME} ${ROOT} )
  165. else()
  166. compilerSpecificPlatformConfigLibForR(${PROJECTNAME} ${ROOT} )
  167. endif()
  168. endfunction()
  169. function (configplatformForApp PROJECTNAME ROOT CORE PLATFORMFOLDER)
  170. if (SEMIHOSTING)
  171. target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
  172. endif()
  173. configure_platform(${PROJECTNAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
  174. SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
  175. if (CORTEXM)
  176. compilerSpecificPlatformConfigAppForM(${PROJECTNAME} ${ROOT} )
  177. elseif(CORTEXA)
  178. compilerSpecificPlatformConfigAppForA(${PROJECTNAME} ${ROOT} )
  179. else()
  180. compilerSpecificPlatformConfigAppForR(${PROJECTNAME} ${ROOT} )
  181. endif()
  182. endfunction()