f1.cmake 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. set(STM32_F1_TYPES
  2. F100xB F100xE F101x6 F101xB F101xE F101xG F102x6 F102xB
  3. F103x6 F103xB F103xE F103xG F105xC F107xC
  4. )
  5. set(STM32_F1_TYPE_MATCH
  6. "F100.[468B]" "F100.[CDE]" "F101.[46]" "F101.[8B]" "F101.[CDE]" "F101.[FG]" "F102.[46]" "F102.[8B]"
  7. "F103.[46]" "F103.[8B]" "F103.[CDE]" "F103.[FG]" "F105.[8BC]" "F107.[BC]"
  8. )
  9. set(STM32_F1_RAM_SIZES
  10. 0K 0K 0K 0K 0K 0K 0K 0K
  11. 0K 0K 0K 0K 0K 0K
  12. )
  13. set(STM32_F1_CCRAM_SIZES
  14. 0K 0K 0K 0K 0K 0K 0K 0K
  15. 0K 0K 0K 0K 0K 0K
  16. )
  17. stm32_util_create_family_targets(F1)
  18. target_compile_options(STM32::F1 INTERFACE
  19. -mcpu=cortex-m3
  20. )
  21. target_link_options(STM32::F1 INTERFACE
  22. -mcpu=cortex-m3
  23. )
  24. function(stm32f1_get_memory_info DEVICE TYPE FLASH_SIZE RAM_SIZE)
  25. string(REGEX REPLACE "F1[0-9][0-9].([468BCDEFGHI])" "\\1" SIZE_CODE ${DEVICE})
  26. if((TYPE STREQUAL "F100xB") OR (TYPE STREQUAL "F100xE"))
  27. if((SIZE_CODE STREQUAL "4") OR (SIZE_CODE STREQUAL "6"))
  28. set(RAM "4K")
  29. elseif((SIZE_CODE STREQUAL "8") OR (SIZE_CODE STREQUAL "B"))
  30. set(RAM "8K")
  31. elseif(SIZE_CODE STREQUAL "C")
  32. set(RAM "24K")
  33. elseif((SIZE_CODE STREQUAL "D") OR (SIZE_CODE STREQUAL "E"))
  34. set(RAM "32K")
  35. endif()
  36. elseif((TYPE STREQUAL "F101x6") OR (TYPE STREQUAL "F101xB") OR
  37. (TYPE STREQUAL "F101xE") OR (TYPE STREQUAL "F101xG") OR
  38. (TYPE STREQUAL "F102x6") OR (TYPE STREQUAL "F102xB"))
  39. if(SIZE_CODE STREQUAL "4")
  40. set(RAM "4K")
  41. elseif(SIZE_CODE STREQUAL "6")
  42. set(RAM "6K")
  43. elseif(SIZE_CODE STREQUAL "8")
  44. set(RAM "10K")
  45. elseif(SIZE_CODE STREQUAL "B")
  46. set(RAM "16K")
  47. elseif(SIZE_CODE STREQUAL "C")
  48. set(RAM "32K")
  49. elseif((SIZE_CODE STREQUAL "D") OR (SIZE_CODE STREQUAL "E"))
  50. set(RAM "48K")
  51. elseif((SIZE_CODE STREQUAL "F") OR (SIZE_CODE STREQUAL "G"))
  52. set(RAM "80K")
  53. endif()
  54. elseif((TYPE STREQUAL "F103x6") OR (TYPE STREQUAL "F103xB") OR
  55. (TYPE STREQUAL "F103xE") OR (TYPE STREQUAL "F103xG"))
  56. if(SIZE_CODE STREQUAL "4")
  57. set(RAM "6K")
  58. elseif(SIZE_CODE STREQUAL "6")
  59. set(RAM "10K")
  60. elseif((SIZE_CODE STREQUAL "8") OR (SIZE_CODE STREQUAL "B"))
  61. set(RAM "20K")
  62. elseif(SIZE_CODE STREQUAL "C")
  63. set(RAM "48K")
  64. elseif((SIZE_CODE STREQUAL "D") OR (SIZE_CODE STREQUAL "E"))
  65. set(RAM "64K")
  66. elseif((SIZE_CODE STREQUAL "F") OR (SIZE_CODE STREQUAL "G"))
  67. set(RAM "96K")
  68. endif()
  69. elseif((TYPE STREQUAL "F105xC") OR (TYPE STREQUAL "F107xC"))
  70. set(RAM "64K")
  71. endif()
  72. set(${RAM_SIZE} ${RAM} PARENT_SCOPE)
  73. endfunction()