1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

cpu/esp: use FLASHFILE_POS for image position in flash

Instead of using a fixed position of the image file in the flash, the variable `FLASHFILE_POS` is used which allows to override the default position of the image in the flash at 0x10000.
This commit is contained in:
Gunar Schorcht 2022-12-27 01:55:28 +01:00
parent ca3b259add
commit f23b20f91f
4 changed files with 7 additions and 6 deletions

View File

@ -23,6 +23,7 @@ else ifneq (,$(filter esp32s2,$(CPU_FAM)))
else
$(error Unkwnown ESP32x SoC variant (family))
endif
FLASHFILE_POS ?= 0x10000
ESPTOOL ?= $(RIOTTOOLS)/esptools/esptool_v3.2.py
@ -244,7 +245,7 @@ ifneq (,$(filter esp_jtag,$(USEMODULE)))
-c 'flash write_image erase "$(BOOTLOADER_BIN)" $(BOOTLOADER_POS) bin' \
-c 'echo "Installing partition table at $(PARTITION_POS)"' \
-c 'flash write_image erase "$(BINDIR)/partitions.bin" $(PARTITION_POS) bin'
IMAGE_OFFSET = 0x10000
IMAGE_OFFSET = $(FLASHFILE_POS)
# Flash checksumming not supported on xtensa
OPENOCD_SKIP_VERIFY = yes
# Without resets debug target fails with 'Target not examined yet'

View File

@ -11,6 +11,7 @@ FLASH_MODE = dout
FLASH_FREQ = 26m
FLASH_SIZE ?= 1
BOOTLOADER_POS = 0x0000
FLASHFILE_POS = 0x10000
include $(RIOTCPU)/esp_common/Makefile.include

View File

@ -140,7 +140,6 @@ $(ELFFILE).bin: $(ELFFILE)
--flash_size $(FLASH_SIZE)MB --flash_freq $(FLASH_FREQ) $(FLASH_OPTS) \
-o $@ $<
# Convert .elf and .csv to .bin files at build time, but make them available for
# tests at flash time. These can't be added to FLASHDEPS because they depend on
# on ELFFILE and would trigger a rebuild with "flash-only".
@ -155,7 +154,7 @@ $(BINDIR)/partitions.csv: $(FLASHFILE)
$(Q)printf "\n" > $(BINDIR)/partitions.csv
$(Q)printf "nvs, data, nvs, 0x9000, 0x6000\n" >> $@
$(Q)printf "phy_init, data, phy, 0xf000, 0x1000\n" >> $@
$(Q)printf "factory, app, factory, 0x10000, " >> $@
$(Q)printf "factory, app, factory, $(FLASHFILE_POS), " >> $@
$(Q)ls -l $< | awk '{ print $$5 }' >> $@
$(BINDIR)/partitions.bin: $(PARTITION_TABLE_CSV)

View File

@ -32,7 +32,7 @@ else
FFLAGS += --flash_size detect
FFLAGS += $(BOOTLOADER_POS) $(BOOTLOADER_BIN)
FFLAGS += 0x8000 $(BINDIR)/partitions.bin
FFLAGS += 0x10000 $(FLASHFILE)
FFLAGS += $(FLASHFILE_POS) $(FLASHFILE)
endif
.PHONY: esp-qemu
@ -44,7 +44,7 @@ ifeq (esp32,$(CPU))
"--flash_size $(FLASH_SIZE)MB" \
"$(BOOTLOADER_POS) $(BOOTLOADER_BIN)" \
"0x8000 $(BINDIR)/partitions.bin" \
"0x10000 $(FLASHFILE)" > $(BINDIR)/qemu_flash_args
"$(FLASHFILE_POS) $(FLASHFILE)" > $(BINDIR)/qemu_flash_args
$(Q)$(ESPTOOL) \
--chip $(CPU_FAM) merge_bin \
--fill-flash-size 4MB \
@ -58,7 +58,7 @@ else
cat - $(BOOTLOADER_BIN) tmp.bin | \
head -c $$((0x8000)) | \
cat - $(BINDIR)/partitions.bin tmp.bin | \
head -c $$((0x10000)) | \
head -c $$(($(FLASHFILE_POS))) | \
cat - $(FLASHFILE) tmp.bin | \
head -c $(FLASH_SIZE)MB > $(BINDIR)/$(CPU)flash.bin && rm tmp.bin
endif