Skip to content

Commit

Permalink
correct hex file address
Browse files Browse the repository at this point in the history
  • Loading branch information
hathach committed Jul 13, 2023
1 parent 100911a commit 1e99e3b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 24 deletions.
2 changes: 1 addition & 1 deletion ports/mimxrt10xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ SDP_JUMP_ADDR := $(shell sed -n 's/_ivt_origin.*\(0x.*\);/\1/p' $(TOP)/$(PORT_DI

$(BUILD)/$(OUTNAME).hex: $(BUILD)/$(OUTNAME).elf
@echo CREATE $@
@$(OBJCOPY) -O ihex --change-addresses $(UF2_$(MCU)_WRITE_ADDR) $^ $@
$(OBJCOPY) -O ihex --change-addresses $$(( $(UF2_$(MCU)_WRITE_ADDR)-$(SDP_WRITE_ADDR) )) $^ $@

# SDPHOST is a variable if you need to change the path
SDPHOST = sdphost
Expand Down
5 changes: 4 additions & 1 deletion ports/mimxrt10xx/apps/app.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set(APPLICATION_ADDR 0x6000C000)
function(family_add_bin_hex TARGET)
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -O binary -R .flash_config -R .ivt $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.bin
COMMAND ${CMAKE_OBJCOPY} -Oihex -R .flash_config -R .ivt $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.hex
COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.hex
VERBATIM)
endfunction()

Expand All @@ -16,6 +16,9 @@ function(configure_app TARGET)
"LINKER:--script=${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../linker/common.ld"
)

family_add_bin_hex(${TARGET})
family_add_uf2(${TARGET} ${UF2_FAMILY_ID})

family_flash_uf2(${TARGET} ${UF2_FAMILY_ID})
family_flash_jlink(${TARGET} hex)
endfunction()
43 changes: 21 additions & 22 deletions ports/mimxrt10xx/family.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ set(UF2_MIMXRT1176_WRITE_ADDR 0x30000000)
set(SDP_PID ${SDP_${MCU_VARIANT}_PID})
set(UF2_WRITE_ADDR ${UF2_${MCU_VARIANT}_WRITE_ADDR})

file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/linker/${MCU_VARIANT}_ram.ld FCFB_ORIGIN REGEX "_fcfb_origin *=")
file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/linker/${MCU_VARIANT}_ram.ld IVT_ORIGIN REGEX "_ivt_origin *=")
string(REGEX REPLACE ".*= *(0x[0-9a-fA-F]+).*" "\\1" FCFB_ORIGIN ${FCFB_ORIGIN})
string(REGEX REPLACE ".*= *(0x[0-9a-fA-F]+).*" "\\1" IVT_ORIGIN ${IVT_ORIGIN})

#------------------------------------
# BOARD_TARGET
#------------------------------------
Expand Down Expand Up @@ -123,12 +128,27 @@ endfunction()
#------------------------------------

function(family_add_bin_hex TARGET)
math(EXPR HEX_OFFSET "${UF2_WRITE_ADDR} - ${FCFB_ORIGIN}")
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.bin
COMMAND ${CMAKE_OBJCOPY} -Oihex --change-addresses ${UF2_WRITE_ADDR} $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.hex
COMMAND ${CMAKE_OBJCOPY} -Oihex --change-addresses ${HEX_OFFSET} $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.hex
VERBATIM)
endfunction()


function(family_flash_sdp TARGET)
if (NOT DEFINED SDPHOST)
set(SDPHOST sdphost)
endif ()

add_custom_target(${TARGET}-sdp
DEPENDS ${TARGET}
COMMAND ${SDPHOST} -u 0x1fc9,${SDP_PID} write-file ${FCFB_ORIGIN} $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.bin
COMMAND ${SDPHOST} -u 0x1fc9,${SDP_PID} jump-address ${IVT_ORIGIN}
)
endfunction()


function(family_flash_jlink TARGET)
if (NOT DEFINED JLINKEXE)
set(JLINKEXE JLinkExe)
Expand All @@ -154,24 +174,3 @@ exit"
COMMAND ${JLINKEXE} -device ${JLINK_DEVICE} -if swd -JTAGConf -1,-1 -speed auto -CommandFile ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.jlink
)
endfunction()

function(family_flash_sdp TARGET)
if (NOT DEFINED SDPHOST)
set(SDPHOST sdphost)
endif ()

file(STRINGS ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/linker/${MCU_VARIANT}_ram.ld FCFB_ORIGIN
REGEX "_fcfb_origin *="
)
file(STRINGS ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/linker/${MCU_VARIANT}_ram.ld IVT_ORIGIN
REGEX "_ivt_origin *="
)
string(REGEX REPLACE ".*= *(0x[0-9a-fA-F]+).*" "\\1" FCFB_ORIGIN ${FCFB_ORIGIN})
string(REGEX REPLACE ".*= *(0x[0-9a-fA-F]+).*" "\\1" IVT_ORIGIN ${IVT_ORIGIN})

add_custom_target(${TARGET}-sdp
DEPENDS ${TARGET}
COMMAND ${SDPHOST} -u 0x1fc9,${SDP_PID} write-file ${FCFB_ORIGIN} $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.bin
COMMAND ${SDPHOST} -u 0x1fc9,${SDP_PID} jump-address ${IVT_ORIGIN}
)
endfunction()

0 comments on commit 1e99e3b

Please sign in to comment.