h7.cmake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # Only CM7 core is supported for now...
  2. set(STM32_H7_TYPES
  3. H743xx H753xx H750xx H742xx H745xx H755xx H747xx H757xx
  4. H7A3xx H7A3xxQ H7B3xx H7B3xxQ H7B0xx H7B0xxQ
  5. )
  6. set(STM32_H7_TYPE_MATCH
  7. "H743.." "H753.." "H750.." "H742.." "H745.." "H755.." "H747.." "H757.."
  8. "H7A3.." "H7A3..Q" "H7B3.." "H7B3..Q" "H7B0.." "H7B0..Q"
  9. )
  10. set(STM32_H7_RAM_SIZES
  11. 128K 128K 128K 128K 128K 128K 128K 128K
  12. 128K 128K 128K 128K 128K 128K
  13. )
  14. set(STM32_H7_M4_RAM_SIZES
  15. 288K 288K 288K 288K 288K 288K 288K 288K
  16. 288K 288K 288K 288K 288K 288K
  17. )
  18. set(STM32_H7_CCRAM_SIZES
  19. 0K 0K 0K 0K 0K 0K 0K 0K
  20. 0K 0K 0K 0K 0K 0K
  21. )
  22. stm32_util_create_family_targets(H7 M7)
  23. target_compile_options(STM32::H7::M7 INTERFACE
  24. -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -mfloat-abi=hard
  25. )
  26. target_link_options(STM32::H7::M7 INTERFACE
  27. -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -mfloat-abi=hard
  28. )
  29. target_compile_definitions(STM32::H7::M7 INTERFACE
  30. -DCORE_CM7
  31. )
  32. stm32_util_create_family_targets(H7 M4)
  33. target_compile_options(STM32::H7::M4 INTERFACE
  34. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  35. )
  36. target_link_options(STM32::H7::M4 INTERFACE
  37. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  38. )
  39. target_compile_definitions(STM32::H7::M4 INTERFACE
  40. -DCORE_CM4
  41. )
  42. function(stm32h7_get_memory_info DEVICE TYPE CORE RAM FLASH_ORIGIN RAM_ORIGIN)
  43. list(FIND STM32_H7_TYPES ${TYPE} TYPE_INDEX)
  44. if(CORE STREQUAL "_M7")
  45. list(GET STM32_H7_RAM_SIZES ${TYPE_INDEX} RAM_VALUE)
  46. set(${RAM} ${RAM_VALUE} PARENT_SCOPE)
  47. set(${FLASH_ORIGIN} 0x8000000 PARENT_SCOPE)
  48. set(${RAM_ORIGIN} 0x20000000 PARENT_SCOPE)
  49. elseif(CORE STREQUAL "_M4")
  50. list(GET STM32_H7_M4_RAM_SIZES ${TYPE_INDEX} RAM_VALUE)
  51. set(${RAM} ${RAM_VALUE} PARENT_SCOPE)
  52. set(${FLASH_ORIGIN} 0x8100000 PARENT_SCOPE)
  53. set(${RAM_ORIGIN} 0x10000000 PARENT_SCOPE)
  54. else()
  55. message(FATAL_ERROR "Unknown core ${CORE}")
  56. endif()
  57. endfunction()