Skip to content

Commit

Permalink
simplify symbol name
Browse files Browse the repository at this point in the history
  • Loading branch information
hathach committed Jul 13, 2023
1 parent 1e99e3b commit b958100
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 49 deletions.
2 changes: 1 addition & 1 deletion ports/mimxrt10xx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ add_tinyuf2(tinyuf2)

family_flash_sdp(tinyuf2)
family_flash_jlink(tinyuf2 hex)
family_add_uf2(tinyuf2 ${UF2_FAMILY_ID} bin ${UF2_WRITE_ADDR})
family_add_uf2(tinyuf2 ${UF2_FAMILY_ID} bin ${UF2_ADDR})
family_flash_uf2(tinyuf2 ${UF2_FAMILY_ID})

#------------------------------------
Expand Down
49 changes: 19 additions & 30 deletions ports/mimxrt10xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,57 +40,46 @@ include ../rules.mk
# is RAM and the addresses need to be translated.
#---------------------------------------------------------
SDP_MIMXRT1011_PID = 0x0145
UF2_MIMXRT1011_WRITE_ADDR = 0x60000400

SDP_MIMXRT1015_PID = 0x0130
UF2_MIMXRT1015_WRITE_ADDR = 0x60000000

SDP_MIMXRT1021_PID = 0x0130
UF2_MIMXRT1021_WRITE_ADDR = 0x60000000

SDP_MIMXRT1024_PID = 0x0130
UF2_MIMXRT1024_WRITE_ADDR = 0x60000000

SDP_MIMXRT1042_PID = 0x0135
UF2_MIMXRT1042_WRITE_ADDR = 0x60000000

SDP_MIMXRT1052_PID = 0x0130
UF2_MIMXRT1052_WRITE_ADDR = 0x60000000

SDP_MIMXRT1062_PID = 0x0135
UF2_MIMXRT1062_WRITE_ADDR = 0x60000000

SDP_MIMXRT1064_PID = 0x0135
UF2_MIMXRT1064_WRITE_ADDR = 0x70000000

SDP_MIMXRT1176_PID = 0x013d
UF2_MIMXRT1176_WRITE_ADDR = 0x30000000

UF2_MIMXRT1011_ADDR= 0x60000400
UF2_MIMXRT1015_ADDR= 0x60000000
UF2_MIMXRT1021_ADDR= 0x60000000
UF2_MIMXRT1024_ADDR= 0x60000000
UF2_MIMXRT1042_ADDR= 0x60000000
UF2_MIMXRT1052_ADDR= 0x60000000
UF2_MIMXRT1062_ADDR= 0x60000000
UF2_MIMXRT1064_ADDR= 0x70000000
UF2_MIMXRT1176_ADDR= 0x30000000

SDP_PID = $(SDP_$(MCU)_PID)
UF2_ADDR = $(UF2_$(MCU)_ADDR)

DBL_TAP_MAGIC_ERASE_APP = 0xf5e80ab4
DBL_TAP_REG_ADDR = 0x400D410C

# extract _fcfb_origin and _ivt_origin from linker file
SDP_WRITE_ADDR := $(shell sed -n 's/_fcfb_origin.*\(0x.*\);/\1/p' $(TOP)/$(PORT_DIR)/linker/$(MCU)_ram.ld)
SDP_JUMP_ADDR := $(shell sed -n 's/_ivt_origin.*\(0x.*\);/\1/p' $(TOP)/$(PORT_DIR)/linker/$(MCU)_ram.ld)
FCFB_ORIGIN := $(shell sed -n 's/_fcfb_origin.*\(0x.*\);/\1/p' $(TOP)/$(PORT_DIR)/linker/$(MCU)_ram.ld)
IVT_ORIGIN := $(shell sed -n 's/_ivt_origin.*\(0x.*\);/\1/p' $(TOP)/$(PORT_DIR)/linker/$(MCU)_ram.ld)

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

# SDPHOST is a variable if you need to change the path
SDPHOST = sdphost

flash-sdp: $(BUILD)/$(OUTNAME).bin
@if [ -z "$(SDPHOST)" ]; then echo SDPHOST is not found for this machine; exit 1; fi
$(SDPHOST) -u 0x1fc9,$(SDP_$(MCU)_PID) write-file $(SDP_WRITE_ADDR) $<
$(SDPHOST) -u 0x1fc9,$(SDP_$(MCU)_PID) jump-address $(SDP_JUMP_ADDR)

# TODO write-register doesn't work
erase-app: $(BUILD)/$(OUTNAME).bin
@if [ -z "$(SDPHOST)" ]; then echo SDPHOST is not found for this machine; exit 1; fi
$(SDPHOST) -u 0x1fc9,$(SDP_$(MCU)_PID) write-register $(DBL_TAP_REG_ADDR) 32 $(DBL_TAP_MAGIC_ERASE_APP)
$(SDPHOST) -u 0x1fc9,$(SDP_$(MCU)_PID) write-file $(SDP_$(MCU)_WRITE_ADDR) $<
$(SDPHOST) -u 0x1fc9,$(SDP_$(MCU)_PID) jump-address $(SDP_$(MCU)_JUMP_ADDR)
$(SDPHOST) -u 0x1fc9,$(SDP_PID) write-file $(FCFB_ORIGIN) $<
$(SDPHOST) -u 0x1fc9,$(SDP_PID) jump-address $(IVT_ORIGIN)

#-------------------------- Self-update --------------------------
# RT10xx run entire bootloader from SRAM and can directly flash
Expand All @@ -101,7 +90,7 @@ self-update: $(SELF_UF2)
# self-update uf2 file
$(SELF_UF2): $(BUILD)/$(OUTNAME).bin
@echo CREATE $@
$(UF2CONV_PY) -f $(UF2_FAMILY_ID) -b $(UF2_$(MCU)_WRITE_ADDR) -c -o $@ $<
$(UF2CONV_PY) -f $(UF2_FAMILY_ID) -b $(UF2_ADDR) -c -o $@ $<

# flash by copying uf2
flash-uf2: $(SELF_UF2)
Expand Down
29 changes: 11 additions & 18 deletions ports/mimxrt10xx/family.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,27 @@ set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/../../cmake/toolchain/arm_${T
# is RAM and the addresses need to be translated.
#---------------------------------------------------------
set(SDP_MIMXRT1011_PID 0x0145)
set(UF2_MIMXRT1011_WRITE_ADDR 0x60000400)

set(SDP_MIMXRT1015_PID 0x0130)
set(UF2_MIMXRT1015_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1021_PID 0x0130)
set(UF2_MIMXRT1021_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1024_PID 0x0130)
set(UF2_MIMXRT1024_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1042_PID 0x0135)
set(UF2_MIMXRT1042_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1052_PID 0x0130)
set(UF2_MIMXRT1052_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1062_PID 0x0135)
set(UF2_MIMXRT1062_WRITE_ADDR 0x60000000)

set(SDP_MIMXRT1064_PID 0x0135)
set(UF2_MIMXRT1064_WRITE_ADDR 0x70000000)

set(SDP_MIMXRT1176_PID 0x013d)

set(UF2_MIMXRT1011_WRITE_ADDR 0x60000400)
set(UF2_MIMXRT1015_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1021_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1024_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1042_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1052_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1062_WRITE_ADDR 0x60000000)
set(UF2_MIMXRT1064_WRITE_ADDR 0x70000000)
set(UF2_MIMXRT1176_WRITE_ADDR 0x30000000)

set(SDP_PID ${SDP_${MCU_VARIANT}_PID})
set(UF2_WRITE_ADDR ${UF2_${MCU_VARIANT}_WRITE_ADDR})
set(UF2_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 *=")
Expand Down Expand Up @@ -128,7 +121,7 @@ endfunction()
#------------------------------------

function(family_add_bin_hex TARGET)
math(EXPR HEX_OFFSET "${UF2_WRITE_ADDR} - ${FCFB_ORIGIN}")
math(EXPR HEX_OFFSET "${UF2_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 ${HEX_OFFSET} $<TARGET_FILE:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.hex
Expand Down

0 comments on commit b958100

Please sign in to comment.