rt10xx use bootloader bin for self-update

- add flash pyocd with bin file target
- should fix action ci for self-update
This commit is contained in:
hathach 2020-12-30 00:57:52 +07:00
parent 752e52fec1
commit c67d93c310
10 changed files with 34 additions and 27 deletions

View file

@ -62,7 +62,11 @@ SELF_ASFLAGS = $(ASFLAGS)
include ../self_update.mk
# required for uf2 conversion
# self-update uf2 file
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex
@echo CREATE $@
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).elf
@echo CREATE $@
@$(OBJCOPY) -O ihex $^ $@

View file

@ -41,6 +41,8 @@ endif
BUILD = _build/$(BOARD)
BIN = _bin/$(BOARD)
OUTNAME = tinyuf2-$(BOARD)
#-------------- Source files and compiler flags --------------
# PORT is directory name containing the Makefile

View file

@ -58,22 +58,19 @@ INC += \
include ../rules.mk
#-------------- Self-update --------------
SELF_CFLAGS = $(CFLAGS) -DTINYUF2_SELF_UPDATE
SELF_LDFLAGS = $(LDFLAGS)
SELF_LD_FILES ?= $(PORT_DIR)/linker/$(MCU)_nor.ld $(PORT_DIR)/linker/self_update_memory.ld $(PORT_DIR)/linker/common.ld
SELF_ASFLAGS = $(ASFLAGS)
# Flash binary to correct bootloader address
flash-pyocd-imxrt: $(BUILD)/$(OUTNAME).bin
pyocd flash -t $(PYOCD_TARGET) -a 0x60000400 $<
pyocd reset -t $(PYOCD_TARGET)
#-------------- Self-update --------------
# RT10xx run entire bootloader from SRAM and
# can directly flash the bootloader region
# without using self-update app as other port
#--------------------------------------------
include ../self_update.mk
# required for uf2 conversion
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).elf
# self-update uf2 file
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2: $(BUILD)/$(OUTNAME).bin $(SELF_OBJ_DIRS)
@echo CREATE $@
@$(OBJCOPY) -O ihex -R .flash_config -R .ivt $^ $@
# required for self-update elf compile
$(SELF_BUILD_OBJ)/self_update/$(OUTNAME).c: $(SELF_BUILD_OBJ)/self_update/$(OUTNAME)-textonly.bin
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py --carray $^ -o $@
$(SELF_BUILD_OBJ)/self_update/$(OUTNAME)-textonly.bin: $(BUILD)/$(OUTNAME).elf
@$(OBJCOPY) -O binary -R .flash_config -R .ivt $^ $@
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -b 0x60000400 -c -o $@ $<

View file

@ -8,5 +8,5 @@ JLINK_DEVICE = MIMXRT1011DAE5A
PYOCD_TARGET = mimxrt1010
# flash using pyocd
flash: flash-pyocd
flash: flash-pyocd-imxrt
erase: erase-pyocd

View file

@ -8,7 +8,7 @@ JLINK_DEVICE = MIMXRT1021DAG5A
PYOCD_TARGET = mimxrt1020
# flash using pyocd
flash: flash-pyocd
flash: flash-pyocd-imxrt
erase: erase-pyocd
# flash: flash-jlink

View file

@ -8,5 +8,5 @@ JLINK_DEVICE = MIMXRT1062xxx6A
PYOCD_TARGET = mimxrt1060
# flash using pyocd
flash: flash-pyocd
flash: flash-pyocd-imxrt
erase: erase-pyocd

View file

@ -2,8 +2,6 @@
# Common make rules for all
# ---------------------------------------
OUTNAME = tinyuf2-$(BOARD)
PYTHON3 ?= python3
MKDIR = mkdir
SED = sed

View file

@ -13,12 +13,10 @@ $(SELF_OBJ): | $(SELF_OBJ_DIRS)
$(SELF_OBJ_DIRS):
@$(MKDIR) -p $@
# self-update uf2 target is defined by port Makefile
self-update: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex
@echo CREATE $@
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
# self-update elf require self_update/$(OUTPNAME0.c which is defined by port Makefile
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).elf: $(SELF_OBJ)
@echo LINK $@
@$(CC) -o $@ $(SELF_LDFLAGS) $(addprefix $(LD_SCRIPT_FLAG), $(SELF_LD_FILES)) $^ -Wl,--start-group $(LIBS) -Wl,--end-group

View file

@ -66,7 +66,11 @@ SELF_ASFLAGS = $(ASFLAGS)
include ../self_update.mk
# required for uf2 conversion
# self-update uf2 file
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex
@echo CREATE $@
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).elf
@echo CREATE $@
@$(OBJCOPY) -O ihex $^ $@

View file

@ -46,7 +46,11 @@ SELF_ASFLAGS = $(ASFLAGS)
include ../self_update.mk
# required for uf2 conversion
# self-update uf2 file
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).uf2: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex
@echo CREATE $@
$(PYTHON3) $(TOP)/lib/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
$(SELF_BUILD_OBJ)/$(SELF_OUTNAME).hex: $(SELF_BUILD_OBJ)/$(SELF_OUTNAME).elf
@echo CREATE $@
@$(OBJCOPY) -O ihex $^ $@