--
This commit is contained in:
@@ -1,16 +1,11 @@
|
||||
function(FUNC_CREATE_MEMORY_MAP filename)
|
||||
function(FUNC_CREATE_MEMORY_MAP filename flash_size boot_size eeprom_size)
|
||||
#memory map for linker
|
||||
SET(MEM_MAP_FILE "${filename}" )
|
||||
set(FLASH_SIZE 128*1024)
|
||||
set(FLASH_SIZE ${flash_size}*1024)
|
||||
MATH(EXPR FLASH_SIZE "${FLASH_SIZE}")
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" AND NOT BOOT)
|
||||
MATH(EXPR FLASH_BOOT_SIZE "0*1024" OUTPUT_FORMAT HEXADECIMAL)
|
||||
else()
|
||||
MATH(EXPR FLASH_BOOT_SIZE "8*1024" OUTPUT_FORMAT HEXADECIMAL)
|
||||
endif()
|
||||
MATH(EXPR FLASH_SUPPORTING_AREA_SIZE "4" OUTPUT_FORMAT HEXADECIMAL) #SUPPORTING AREA CONSIST CRC32 of FLASH_AREA
|
||||
MATH(EXPR FLASH_EEPROM_EMU_SIZE "4*1024" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_MAIN_PROG_SIZE "${FLASH_SIZE} - ${FLASH_BOOT_SIZE} - ${FLASH_EEPROM_EMU_SIZE} - ${FLASH_SUPPORTING_AREA_SIZE}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_BOOT_SIZE "${boot_size}*1024" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_EEPROM_EMU_SIZE "${eeprom_size}*1024" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_MAIN_PROG_SIZE "${FLASH_SIZE} - ${FLASH_BOOT_SIZE} - ${FLASH_EEPROM_EMU_SIZE} " OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_SIZE_CALC "${FLASH_BOOT_SIZE} + ${FLASH_MAIN_PROG_SIZE} + ${FLASH_SUPPORTING_AREA_SIZE} + ${FLASH_EEPROM_EMU_SIZE}")
|
||||
if (${FLASH_SIZE_CALC} GREATER ${FLASH_SIZE} )
|
||||
message(FATAL_ERROR "FLASH_SIZE in MCU - ${FLASH_SIZE} bytes less than CALCULATED_SIZE ${FLASH_SIZE_CALC} bytes")
|
||||
@@ -21,15 +16,12 @@ function(FUNC_CREATE_MEMORY_MAP filename)
|
||||
MATH(EXPR FLASH_START_ADDRESS "0x08000000" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_BOOT_START_ADDRESS "${FLASH_START_ADDRESS}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_MAIN_PROG_START_ADDRESS "${FLASH_START_ADDRESS} + ${FLASH_BOOT_SIZE}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_MAIN_PROG_END_ADDRESS "${FLASH_MAIN_PROG_START_ADDRESS} + ${FLASH_MAIN_PROG_SIZE} - ${FLASH_SUPPORTING_AREA_SIZE}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_MAIN_PROG_END_ADDRESS "${FLASH_MAIN_PROG_START_ADDRESS} + ${FLASH_MAIN_PROG_SIZE} " OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_EEPROM_EMU_START_ADDRESS "${FLASH_START_ADDRESS} + ${FLASH_SIZE} - ${FLASH_EEPROM_EMU_SIZE}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR FLASH_SUPPORTING_AREA_ADDRESS "${FLASH_EEPROM_EMU_START_ADDRESS} - ${FLASH_SUPPORTING_AREA_SIZE}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
MATH(EXPR EEPROM_EMU_START_ADDRESS "${FLASH_EEPROM_EMU_START_ADDRESS}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
file(WRITE "${MEM_MAP_FILE}" "
|
||||
_flash_eeprom_emu_size = ${FLASH_EEPROM_EMU_SIZE};
|
||||
_flash_eeprom_emu_address = ${FLASH_EEPROM_EMU_START_ADDRESS};
|
||||
_flash_supporting_area_size = ${FLASH_SUPPORTING_AREA_SIZE};
|
||||
_flash_supporting_area_address = ${FLASH_SUPPORTING_AREA_ADDRESS};
|
||||
_flash_main_prog_size = ${FLASH_MAIN_PROG_SIZE};
|
||||
_flash_main_prog_address = ${FLASH_MAIN_PROG_START_ADDRESS};
|
||||
_flash_boot_size = ${FLASH_BOOT_SIZE};
|
||||
@@ -37,7 +29,6 @@ function(FUNC_CREATE_MEMORY_MAP filename)
|
||||
")
|
||||
MATH(EXPR CRC32_USER_AREA_ADDRESS "${FLASH_MAIN_PROG_END_ADDRESS}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
message(${CRC32_USER_AREA_ADDRESS})
|
||||
add_compile_definitions("EEPROM_START_ADDRESS=${FLASH_EEPROM_EMU_START_ADDRESS}" "CRC_ADDRESS=${FLASH_SUPPORTING_AREA_ADDRESS}" "FLASH_USER_PROG_ADDRESS=${FLASH_MAIN_PROG_START_ADDRESS}")
|
||||
set(CRC_ADDRESS ${FLASH_SUPPORTING_AREA_ADDRESS} PARENT_SCOPE)
|
||||
add_compile_definitions("EEPROM_START_ADDRESS=${FLASH_EEPROM_EMU_START_ADDRESS}" "FLASH_USER_PROG_ADDRESS=${FLASH_MAIN_PROG_START_ADDRESS}")
|
||||
set(FLASH_MAIN_ADDRESS ${FLASH_MAIN_PROG_START_ADDRESS} PARENT_SCOPE)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user