|
|
@@ -70,22 +70,16 @@ FUNCTION(STM32_ADD_HEX_BIN_TARGETS TARGET)
|
|
|
ENDFUNCTION()
|
|
|
|
|
|
STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
|
|
|
-INCLUDE(${CMAKE_CURRENT_LIST_DIR}/gcc_stm32${STM32_FAMILY_LOWER}.cmake)
|
|
|
+INCLUDE(gcc_stm32${STM32_FAMILY_LOWER})
|
|
|
|
|
|
-MACRO(STM32_KB_TO_BYTES KB BYTES)
|
|
|
- STRING(REGEX REPLACE "^(.+)[kK]$" "\\1" KILOBYTES ${KB})
|
|
|
- IF(KILOBYTES)
|
|
|
- MATH(EXPR ${BYTES} "${KILOBYTES} * 1024")
|
|
|
- ELSE()
|
|
|
- SET(${BYTES} ${KB})
|
|
|
- ENDIF()
|
|
|
-ENDMACRO()
|
|
|
-
|
|
|
-FUNCTION(STM32_SET_FLASH_PARAMS TARGET STM32_FLASH_SIZE STM32_RAM_SIZE STM32_STACK_ADDRESS STM32_MIN_STACK_SIZE STM32_MIN_HEAP_SIZE STM32_FLASH_ORIGIN STM32_RAM_ORIGIN)
|
|
|
+FUNCTION(STM32_SET_FLASH_PARAMS TARGET STM32_FLASH_SIZE STM32_RAM_SIZE STM32_CCRAM_SIZE STM32_MIN_STACK_SIZE STM32_MIN_HEAP_SIZE STM32_FLASH_ORIGIN STM32_RAM_ORIGIN STM32_CCRAM_ORIGIN)
|
|
|
IF(NOT STM32_LINKER_SCRIPT)
|
|
|
- MESSAGE(FATAL_ERROR "No linker script specified. Please specify linker script using STM32_LINKER_SCRIPT variable.")
|
|
|
+ MESSAGE(STATUS "No linker script specified, generating default")
|
|
|
+ INCLUDE(stm32_linker)
|
|
|
+ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld ${STM32_LINKER_SCRIPT_TEXT})
|
|
|
+ ELSE()
|
|
|
+ CONFIGURE_FILE(${STM32_LINKER_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld)
|
|
|
ENDIF()
|
|
|
- CONFIGURE_FILE(${STM32_LINKER_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld)
|
|
|
|
|
|
GET_TARGET_PROPERTY(TARGET_LD_FLAGS ${TARGET} LINK_FLAGS)
|
|
|
IF(TARGET_LD_FLAGS)
|
|
|
@@ -96,29 +90,15 @@ FUNCTION(STM32_SET_FLASH_PARAMS TARGET STM32_FLASH_SIZE STM32_RAM_SIZE STM32_STA
|
|
|
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS ${TARGET_LD_FLAGS})
|
|
|
ENDFUNCTION()
|
|
|
|
|
|
-FUNCTION(STM32_SET_FLASH_PARAMS TARGET FLASH_SIZE RAM_SIZE)
|
|
|
- IF(NOT STM32_LINKER_SCRIPT)
|
|
|
- MESSAGE(FATAL_ERROR "No linker script specified. Please specify linker script using STM32_LINKER_SCRIPT variable.")
|
|
|
- ENDIF()
|
|
|
-
|
|
|
- STM32_KB_TO_BYTES(${FLASH_SIZE} FLASH_SIZE)
|
|
|
- STM32_KB_TO_BYTES(${RAM_SIZE} RAM_SIZE)
|
|
|
-
|
|
|
+FUNCTION(STM32_SET_FLASH_PARAMS TARGET FLASH_SIZE RAM_SIZE)
|
|
|
IF(NOT STM32_FLASH_ORIGIN)
|
|
|
SET(STM32_FLASH_ORIGIN "0x08000000")
|
|
|
ENDIF()
|
|
|
|
|
|
IF(NOT STM32_RAM_ORIGIN)
|
|
|
- SET(STM32_RAM_ORIGIN "536870912")
|
|
|
+ SET(STM32_RAM_ORIGIN "0x20000000")
|
|
|
ENDIF()
|
|
|
|
|
|
- IF(NOT STM32_STACK_ADDRESS)
|
|
|
- MATH(EXPR STM32_STACK_ADDRESS "${STM32_RAM_ORIGIN} + ${RAM_SIZE}")
|
|
|
- ENDIF()
|
|
|
-
|
|
|
- SET(STM32_FLASH_SIZE ${FLASH_SIZE})
|
|
|
- SET(STM32_RAM_SIZE ${RAM_SIZE})
|
|
|
-
|
|
|
IF(NOT STM32_MIN_STACK_SIZE)
|
|
|
SET(STM32_MIN_STACK_SIZE "0x200")
|
|
|
ENDIF()
|
|
|
@@ -126,8 +106,22 @@ FUNCTION(STM32_SET_FLASH_PARAMS TARGET FLASH_SIZE RAM_SIZE)
|
|
|
IF(NOT STM32_MIN_HEAP_SIZE)
|
|
|
SET(STM32_MIN_HEAP_SIZE "0")
|
|
|
ENDIF()
|
|
|
-
|
|
|
- CONFIGURE_FILE(${STM32_LINKER_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld)
|
|
|
+
|
|
|
+ IF(NOT STM32_CCRAM_ORIGIN)
|
|
|
+ SET(STM32_CCRAM_ORIGIN "0x10000000")
|
|
|
+ ENDIF()
|
|
|
+
|
|
|
+ IF(NOT STM32_CCRAM_SIZE)
|
|
|
+ SET(STM32_CCRAM_SIZE "64K")
|
|
|
+ ENDIF()
|
|
|
+
|
|
|
+ IF(NOT STM32_LINKER_SCRIPT)
|
|
|
+ MESSAGE(STATUS "No linker script specified, generating default")
|
|
|
+ INCLUDE(stm32_linker)
|
|
|
+ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld ${STM32_LINKER_SCRIPT_TEXT})
|
|
|
+ ELSE()
|
|
|
+ CONFIGURE_FILE(${STM32_LINKER_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld)
|
|
|
+ ENDIF()
|
|
|
|
|
|
GET_TARGET_PROPERTY(TARGET_LD_FLAGS ${TARGET} LINK_FLAGS)
|
|
|
IF(TARGET_LD_FLAGS)
|