f3.cmake 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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()