f3.cmake 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. set(STM32_F3_TYPES
  2. F301x8 F302x8 F302xC F302xE F303x8 F303xC
  3. F303xE F318xx F328xx F334x8 F358xx F373xC
  4. F378xx F398xx
  5. )
  6. set(STM32_F3_TYPE_MATCH
  7. "301.[68]" "302.[68]" "302.[BC]" "302.[DE]" "303.[68]" "303.[BC]"
  8. "303.[DE]" "318.." "328.." "334.[468]" "358.." "373.[8BC]"
  9. "378.." "398.."
  10. )
  11. set(STM32_F3_RAM_SIZES
  12. 16K 16K 0K 64K 12K 0K
  13. 64K 16K 12K 12K 40K 0K
  14. 32K 64K
  15. )
  16. set(STM32_F3_CCRAM_SIZES
  17. 0K 0K 0K 0K 4K 8K
  18. 16K 0K 4K 4K 8K 0K
  19. 0K 16K
  20. )
  21. stm32_util_create_family_targets(F3)
  22. target_compile_options(STM32::F3 INTERFACE
  23. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  24. )
  25. target_link_options(STM32::F3 INTERFACE
  26. -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  27. )
  28. function(stm32f3_get_memory_info DEVICE TYPE FLASH_SIZE RAM_SIZE)
  29. string(REGEX REPLACE "F3[0-9][0-9].([468BCDEFGHI])" "\\1" SIZE_CODE ${DEVICE})
  30. if(TYPE STREQUAL "F302xC")
  31. if(SIZE_CODE STREQUAL "C")
  32. set(RAM "40K")
  33. else()
  34. set(RAM "32K")
  35. endif()
  36. elseif(TYPE STREQUAL "F303xC")
  37. if(SIZE_CODE STREQUAL "C")
  38. set(RAM "40K")
  39. else()
  40. set(RAM "32K")
  41. endif()
  42. elseif(TYPE STREQUAL "F373xC")
  43. if(SIZE_CODE STREQUAL "B")
  44. set(RAM "24K")
  45. elseif(SIZE_CODE STREQUAL "C")
  46. set(RAM "32K")
  47. else()
  48. set(RAM "16K")
  49. endif()
  50. endif()
  51. if(RAM)
  52. set(${RAM_SIZE} ${RAM} PARENT_SCOPE)
  53. endif()
  54. endfunction()
  55. list(APPEND STM32_ALL_DEVICES
  56. F301C6
  57. F301C8
  58. F301K6
  59. F301K8
  60. F301R6
  61. F301R8
  62. F302C6
  63. F302C8
  64. F302CB
  65. F302CC
  66. F302K6
  67. F302K8
  68. F302R6
  69. F302R8
  70. F302RB
  71. F302RC
  72. F302RD
  73. F302RE
  74. F302VB
  75. F302VC
  76. F302VD
  77. F302VE
  78. F302ZD
  79. F302ZE
  80. F303C6
  81. F303C8
  82. F303CB
  83. F303CC
  84. F303K6
  85. F303K8
  86. F303R6
  87. F303R8
  88. F303RB
  89. F303RC
  90. F303RD
  91. F303RE
  92. F303VB
  93. F303VC
  94. F303VD
  95. F303VE
  96. F303ZD
  97. F303ZE
  98. F318C8
  99. F318K8
  100. F328C8
  101. F334C4
  102. F334C6
  103. F334C8
  104. F334K4
  105. F334K6
  106. F334K8
  107. F334R6
  108. F334R8
  109. F358CC
  110. F358RC
  111. F358VC
  112. F373C8
  113. F373CB
  114. F373CC
  115. F373R8
  116. F373RB
  117. F373RC
  118. F373V8
  119. F373VB
  120. F373VC
  121. F378CC
  122. F378RC
  123. F378VC
  124. F398VE
  125. )
  126. list(APPEND STM32_SUPPORTED_FAMILIES_LONG_NAME
  127. STM32F3
  128. )
  129. list(APPEND STM32_FETCH_FAMILIES F3)
  130. set(CUBE_F3_VERSION v1.11.2)
  131. set(CMSIS_F3_VERSION v2.3.5)
  132. set(HAL_F3_VERSION v1.5.5)