Преглед изворни кода

Merge pull request #99 from Danaozhong/stm32f3_family_ccram_fix

Fix the RAM/CCRAM size for STM32F3 MCUs
Konstantin Oblaukhov пре 6 година
родитељ
комит
721e36e395
1 измењених фајлова са 15 додато и 9 уклоњено
  1. 15 9
      cmake/gcc_stm32f3.cmake

+ 15 - 9
cmake/gcc_stm32f3.cmake

@@ -27,32 +27,38 @@ MACRO(STM32_GET_CHIP_PARAMETERS CHIP FLASH_SIZE RAM_SIZE CCRAM_SIZE)
 
 
     IF(STM32_SIZE_CODE STREQUAL "6")
     IF(STM32_SIZE_CODE STREQUAL "6")
         SET(FLASH "32K")
         SET(FLASH "32K")
-        SET(CCRAM "4K")
+        SET(CCRAM_SIZE_IN_K "4")
     ELSEIF(STM32_SIZE_CODE STREQUAL "8")
     ELSEIF(STM32_SIZE_CODE STREQUAL "8")
         SET(FLASH "64K")
         SET(FLASH "64K")
-        SET(CCRAM "4K")
+        SET(CCRAM_SIZE_IN_K "4")
     ELSEIF(STM32_SIZE_CODE STREQUAL "B")
     ELSEIF(STM32_SIZE_CODE STREQUAL "B")
         SET(FLASH "128K")
         SET(FLASH "128K")
-        SET(CCRAM "8K")
+        SET(CCRAM_SIZE_IN_K "8")
     ELSEIF(STM32_SIZE_CODE STREQUAL "C")
     ELSEIF(STM32_SIZE_CODE STREQUAL "C")
         SET(FLASH "256K")
         SET(FLASH "256K")
-        SET(CCRAM "8K")
+        SET(CCRAM_SIZE_IN_K "8")
     ENDIF()
     ENDIF()
 
 
     STM32_GET_CHIP_TYPE(${CHIP} TYPE)
     STM32_GET_CHIP_TYPE(${CHIP} TYPE)
 
 
     IF(${TYPE} STREQUAL "301xx")
     IF(${TYPE} STREQUAL "301xx")
-        SET(RAM "16K")
+        SET(RAM_SIZE_IN_K "16")
     ELSEIF(${TYPE} STREQUAL "302xx")
     ELSEIF(${TYPE} STREQUAL "302xx")
-        SET(RAM "256K")
+        SET(RAM_SIZE_IN_K "256")
     ELSEIF(${TYPE} STREQUAL "303xx")
     ELSEIF(${TYPE} STREQUAL "303xx")
-        SET(RAM "48K")
+        SET(RAM_SIZE_IN_K "48")
     ELSEIF(${TYPE} STREQUAL "334xx")
     ELSEIF(${TYPE} STREQUAL "334xx")
-        SET(RAM "16K")
+        SET(RAM_SIZE_IN_K "16")
     ELSEIF(${TYPE} STREQUAL "373xx")
     ELSEIF(${TYPE} STREQUAL "373xx")
-        SET(RAM "128K")
+        SET(RAM_SIZE_IN_K "128")
     ENDIF()
     ENDIF()
 
 
+    # RAM size = total RAM - CCRAM
+    MATH(EXPR RAM_SIZE_IN_K "${RAM_SIZE_IN_K}-${CCRAM_SIZE_IN_K}")
+    # Append the 'K' literal to the numbers
+    SET(RAM "${RAM_SIZE_IN_K}K")
+    SET(CCRAM "${CCRAM_SIZE_IN_K}K")
+    
     SET(${FLASH_SIZE} ${FLASH})
     SET(${FLASH_SIZE} ${FLASH})
     SET(${RAM_SIZE} ${RAM})
     SET(${RAM_SIZE} ${RAM})
     SET(${CCRAM_SIZE} ${CCRAM})
     SET(${CCRAM_SIZE} ${CCRAM})