h7.cmake 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. set(STM32_H7_TYPES
  2. H723xx H725xx H730xx H730xxQ H733xx H735xx
  3. H743xx H753xx H750xx H742xx H745xx H755xx H747xx H757xx
  4. H7A3xx H7A3xxQ H7B3xx H7B3xxQ H7B0xx H7B0xxQ
  5. )
  6. set(STM32_H7_TYPE_MATCH
  7. "H723.." "H725.." "H730.." "H730..Q" "H733.." "H735.."
  8. "H743.." "H753.." "H750.." "H742.." "H745.." "H755.." "H747.." "H757.."
  9. "H7A3.." "H7A3..Q" "H7B3.." "H7B3..Q" "H7B0.." "H7B0..Q"
  10. )
  11. set(STM32_H7_RAM_SIZES
  12. 128K 128K 128K 128K 128K 128K
  13. 128K 128K 128K 128K 128K 128K 128K 128K
  14. 128K 128K 128K 128K 128K 128K
  15. )
  16. set(STM32_H7_M4_RAM_SIZES
  17. 0K 0K 0K 0K 0K 0K
  18. 0K 0K 0K 0K 288K 288K 288K 288K
  19. 0K 0K 0K 0K 0K 0K
  20. )
  21. set(STM32_H7_CCRAM_SIZES
  22. 0K 0K 0K 0K 0K 0K
  23. 0K 0K 0K 0K 0K 0K 0K 0K
  24. 0K 0K 0K 0K 0K 0K
  25. )
  26. set(STM32_H7_DUAL_CORE
  27. H745xx H755xx H747xx H757xx
  28. )
  29. stm32_util_create_family_targets(H7 M7)
  30. target_compile_options(STM32::H7::M7 INTERFACE
  31. -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -mfloat-abi=hard
  32. )
  33. target_link_options(STM32::H7::M7 INTERFACE
  34. -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -mfloat-abi=hard
  35. )
  36. target_compile_definitions(STM32::H7::M7 INTERFACE
  37. -DCORE_CM7
  38. )
  39. stm32_util_create_family_targets(H7 M4)
  40. target_compile_options(STM32::H7::M4 INTERFACE
  41. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  42. )
  43. target_link_options(STM32::H7::M4 INTERFACE
  44. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  45. )
  46. target_compile_definitions(STM32::H7::M4 INTERFACE
  47. -DCORE_CM4
  48. )
  49. function(stm32h7_get_memory_info DEVICE TYPE CORE RAM FLASH_ORIGIN RAM_ORIGIN TWO_FLASH_BANKS)
  50. if(${TYPE} IN_LIST STM32_H7_DUAL_CORE)
  51. set(${TWO_FLASH_BANKS} TRUE PARENT_SCOPE)
  52. else()
  53. set(${TWO_FLASH_BANKS} FALSE PARENT_SCOPE)
  54. endif()
  55. if(NOT CORE)
  56. set(CORE "M7")
  57. endif()
  58. list(FIND STM32_H7_TYPES ${TYPE} TYPE_INDEX)
  59. if(CORE STREQUAL "M7")
  60. list(GET STM32_H7_RAM_SIZES ${TYPE_INDEX} RAM_VALUE)
  61. set(${RAM} ${RAM_VALUE} PARENT_SCOPE)
  62. set(${FLASH_ORIGIN} 0x8000000 PARENT_SCOPE)
  63. set(${RAM_ORIGIN} 0x20000000 PARENT_SCOPE)
  64. elseif((${TYPE} IN_LIST STM32_H7_DUAL_CORE) AND (CORE STREQUAL "M4"))
  65. list(GET STM32_H7_M4_RAM_SIZES ${TYPE_INDEX} RAM_VALUE)
  66. set(${RAM} ${RAM_VALUE} PARENT_SCOPE)
  67. set(${FLASH_ORIGIN} 0x8100000 PARENT_SCOPE)
  68. set(${RAM_ORIGIN} 0x10000000 PARENT_SCOPE)
  69. else()
  70. message(FATAL_ERROR "Unknown core ${CORE}")
  71. endif()
  72. endfunction()
  73. function(stm32h7_get_device_cores DEVICE TYPE CORES)
  74. if(${TYPE} IN_LIST STM32_H7_DUAL_CORE)
  75. set(${CORES} M7 M4 PARENT_SCOPE)
  76. else()
  77. set(${CORES} M7 PARENT_SCOPE)
  78. endif()
  79. endfunction()
  80. list(APPEND STM32_ALL_DEVICES
  81. H723VE
  82. H723VG
  83. H723ZE
  84. H723ZG
  85. H725AE
  86. H725AG
  87. H725IE
  88. H725IG
  89. H725RE
  90. H725RG
  91. H725VE
  92. H725VG
  93. H725ZE
  94. H725ZG
  95. H730AB
  96. H730IB
  97. H730VB
  98. H730ZB
  99. H733VG
  100. H733ZG
  101. H735AG
  102. H735IG
  103. H735RG
  104. H735VG
  105. H735ZG
  106. H742AG
  107. H742AI
  108. H742BG
  109. H742BI
  110. H742IG
  111. H742II
  112. H742VG
  113. H742VI
  114. H742XG
  115. H742XI
  116. H742ZG
  117. H742ZI
  118. H743AG
  119. H743AI
  120. H743BG
  121. H743BI
  122. H743IG
  123. H743II
  124. H743VG
  125. H743VI
  126. H743XG
  127. H743XI
  128. H743ZG
  129. H743ZI
  130. H745BG
  131. H745BI
  132. H745IG
  133. H745II
  134. H745XG
  135. H745XI
  136. H745ZG
  137. H745ZI
  138. H747AG
  139. H747AI
  140. H747BG
  141. H747BI
  142. H747IG
  143. H747II
  144. H747XG
  145. H747XI
  146. H747ZI
  147. H750IB
  148. H750VB
  149. H750XB
  150. H750ZB
  151. H753AI
  152. H753BI
  153. H753II
  154. H753VI
  155. H753XI
  156. H753ZI
  157. H755BI
  158. H755II
  159. H755XI
  160. H755ZI
  161. H757AI
  162. H757BI
  163. H757II
  164. H757XI
  165. H757ZI
  166. H7A3AG
  167. H7A3AI
  168. H7A3IG
  169. H7A3II
  170. H7A3LG
  171. H7A3LI
  172. H7A3NG
  173. H7A3NI
  174. H7A3QI
  175. H7A3RG
  176. H7A3RI
  177. H7A3VG
  178. H7A3VI
  179. H7A3ZG
  180. H7A3ZI
  181. H7B0AB
  182. H7B0IB
  183. H7B0RB
  184. H7B0VB
  185. H7B0ZB
  186. H7B3AI
  187. H7B3II
  188. H7B3LI
  189. H7B3NI
  190. H7B3QI
  191. H7B3RI
  192. H7B3VI
  193. H7B3ZI
  194. )
  195. list(APPEND STM32_SUPPORTED_FAMILIES_LONG_NAME
  196. STM32H7_M4
  197. STM32H7_M7
  198. )
  199. list(APPEND STM32_FETCH_FAMILIES H7)
  200. set(CUBE_H7_VERSION v1.9.0)
  201. set(CMSIS_H7_VERSION v1.10.0)
  202. set(HAL_H7_VERSION v1.10.0)