parent
898e7045c7
commit
e3774b0fb6
@ -0,0 +1,32 @@ |
|||||||
|
#Makefile with the options specific to the build of a non-upgradable firmware with
|
||||||
|
#the espfs combined into the flash binary.
|
||||||
|
|
||||||
|
# linker script used for the linker step
|
||||||
|
LD_SCRIPT = eagle.app.v6.ld
|
||||||
|
# Extra script to tell the linker the correct irom0 memory available
|
||||||
|
EXTRA_LD_SCRIPTS = ldscript_memspecific.ld
|
||||||
|
|
||||||
|
TARGET_OUT := $(addprefix $(BUILD_BASE)/,$(TARGET).out)
|
||||||
|
|
||||||
|
.PHONY: ldscript_memspecific.ld |
||||||
|
|
||||||
|
ldscript_memspecific.ld: |
||||||
|
$(vecho) "GEN $@"
|
||||||
|
$(Q) echo "MEMORY { irom0_0_seg : org = 0x40240000, len = "$$(printf "0x%X" $$(($(ESP_SPI_FLASH_SIZE)-0x4000)))" }"> ldscript_memspecific.ld
|
||||||
|
|
||||||
|
$(TARGET_OUT): $(APP_AR) $(EXTRA_LD_SCRIPTS) |
||||||
|
$(vecho) "LD $@"
|
||||||
|
$(Q) $(LD) -Llibesphttpd -L$(SDK_LIBDIR) $(LD_SCRIPT) $(EXTRA_LD_SCRIPTS) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@
|
||||||
|
|
||||||
|
|
||||||
|
$(FW_BASE): $(TARGET_OUT) |
||||||
|
$(vecho) "FW $@"
|
||||||
|
$(Q) mkdir -p $@
|
||||||
|
$(Q) $(ESPTOOL) elf2image $(TARGET_OUT) --output $@/
|
||||||
|
|
||||||
|
flash: $(TARGET_OUT) $(FW_BASE) |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x00000 $(FW_BASE)/0x00000.bin 0x40000 $(FW_BASE)/0x40000.bin
|
||||||
|
|
||||||
|
blankflash: |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x7E000 $(SDK_BASE)/bin/blank.bin
|
||||||
|
|
@ -0,0 +1,84 @@ |
|||||||
|
#Makefile with the options specific to the build of a non-upgradable firmware with
|
||||||
|
#the espfs combined into the flash binary.
|
||||||
|
|
||||||
|
# linker script used for the linker step
|
||||||
|
LD_SCRIPT_USR1 := eagle.app.v6.new.$(ESP_SPI_FLASH_SIZE).app1.ld
|
||||||
|
LD_SCRIPT_USR2 := eagle.app.v6.new.$(ESP_SPI_FLASH_SIZE).app2.ld
|
||||||
|
|
||||||
|
TARGET_OUT_USR1 := $(addprefix $(BUILD_BASE)/,$(TARGET).user1.out)
|
||||||
|
TARGET_OUT_USR2 := $(addprefix $(BUILD_BASE)/,$(TARGET).user2.out)
|
||||||
|
TARGET_OUT := $(TARGET_OUT_USR1) $(TARGET_OUT_USR2)
|
||||||
|
|
||||||
|
TARGET_BIN_USR1 := $(addprefix $(BUILD_BASE)/,$(TARGET).user1.bin)
|
||||||
|
TARGET_BIN_USR2 := $(addprefix $(BUILD_BASE)/,$(TARGET).user2.bin)
|
||||||
|
TARGET_BIN := $(TARGET_BIN_USR1) $(TARGET_BIN_USR2)
|
||||||
|
|
||||||
|
#Convert SPI size into arg for appgen. Format: no=size
|
||||||
|
FLASH_MAP_CONV:=0:512 2:1024 5:2048 6:4096
|
||||||
|
ESP_FLASH_SIZE_IX:=$(patsubst %:$(ESP_SPI_FLASH_SIZE),%,$(filter %:$(ESP_SPI_FLASH_SIZE),$(FLASH_MAP_CONV)))
|
||||||
|
|
||||||
|
define genappbin |
||||||
|
$(1): $$(APP_AR) |
||||||
|
$$(vecho) LD $$@
|
||||||
|
$$(Q) $$(LD) -Llibesphttpd -L$$(SDK_LIBDIR) $(2) $$(LDFLAGS) -Wl,--start-group $$(LIBS) $$(APP_AR) -Wl,--end-group -o $$@
|
||||||
|
|
||||||
|
$(3): $(1) |
||||||
|
$$(vecho) APPGEN $$@
|
||||||
|
$$(Q) $$(OBJCOPY) --only-section .text -O binary $1 build/eagle.app.v6.text.bin
|
||||||
|
$$(Q) $$(OBJCOPY) --only-section .data -O binary $1 build/eagle.app.v6.data.bin
|
||||||
|
$$(Q) $$(OBJCOPY) --only-section .rodata -O binary $1 build/eagle.app.v6.rodata.bin
|
||||||
|
$$(Q) $$(OBJCOPY) --only-section .irom0.text -O binary $1 build/eagle.app.v6.irom0text.bin
|
||||||
|
$$(Q) cd build; COMPILE=gcc PATH=$$(XTENSA_TOOLS_ROOT):$$(PATH) python $$(APPGEN) $(1:build/%=%) 2 $$(ESP_FLASH_MODE) $$(ESP_FLASH_FREQ_DIV) $$(ESP_FLASH_SIZE_IX)
|
||||||
|
$$(Q) rm -f eagle.app.v6.*.bin
|
||||||
|
$$(Q) mv build/eagle.app.flash.bin $$@
|
||||||
|
@echo "** user1.bin uses $$$$(stat -c '%s' $$@) bytes of" $$(ESP_FLASH_MAX) "available"
|
||||||
|
endef |
||||||
|
|
||||||
|
$(eval $(call genappbin,$(TARGET_OUT_USR1),$$(LD_SCRIPT_USR1),$$(TARGET_BIN_USR1))) |
||||||
|
$(eval $(call genappbin,$(TARGET_OUT_USR2),$$(LD_SCRIPT_USR2),$$(TARGET_BIN_USR2))) |
||||||
|
|
||||||
|
.PHONY: ldscript_memspecific.ld |
||||||
|
|
||||||
|
ldscript_memspecific.ld: |
||||||
|
$(vecho) "GEN $@"
|
||||||
|
$(Q) echo "MEMORY { irom0_0_seg : org = 0x40240000, len = "$$(printf "0x%X" $$(($(ESP_SPI_FLASH_SIZE)-0x4000)))" }"> ldscript_memspecific.ld
|
||||||
|
|
||||||
|
|
||||||
|
#define makeuser
|
||||||
|
#$1: $(APP_AR)
|
||||||
|
# $(vecho) "LD $@"
|
||||||
|
# $(Q) $(LD) -Llibesphttpd -L$(SDK_LIBDIR) $(LD_SCRIPT) $(EXTRA_LD_SCRIPTS) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@
|
||||||
|
# $(Q) $(OBJCP) --only-section .text -O binary $2 build/eagle.app.v6.text.bin
|
||||||
|
# $(Q) $(OBJCP) --only-section .data -O binary $2 build/eagle.app.v6.data.bin
|
||||||
|
# $(Q) $(OBJCP) --only-section .rodata -O binary $2 build/eagle.app.v6.rodata.bin
|
||||||
|
# $(Q) $(OBJCP) --only-section .irom0.text -O binary $2 build/eagle.app.v6.irom0text.bin
|
||||||
|
# ls -ls build/eagle*bin
|
||||||
|
# $(Q) COMPILE=gcc PATH=$(XTENSA_TOOLS_ROOT):$(PATH) python $(APPGEN_TOOL) $(USER1_OUT) 2 $(ESP_FLASH_MODE) $(ESP_FLASH_FREQ_DIV) $(ESP_SPI_SIZE)
|
||||||
|
# $(Q) rm -f eagle.app.v6.*.bin
|
||||||
|
# $(Q) mv eagle.app.flash.bin $@
|
||||||
|
# @echo "** user1.bin uses $$(stat -c '%s' $@) bytes of" $(ESP_FLASH_MAX) "available"
|
||||||
|
# $(Q) if [ $$(stat -c '%s' $@) -gt $$(( $(ESP_FLASH_MAX) )) ]; then echo "$@ too big!"; false; fi
|
||||||
|
#endef
|
||||||
|
|
||||||
|
|
||||||
|
#user1.bin:
|
||||||
|
# $(call makeuser,user1.bin,1)
|
||||||
|
|
||||||
|
|
||||||
|
$(FW_BASE): $(TARGET_BIN) |
||||||
|
# $(vecho) "FW $@"
|
||||||
|
# $(Q) mkdir -p $@
|
||||||
|
# $(Q) $(ESPTOOL) elf2image $(TARGET_OUT) --output $@/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
flash: $(TARGET_OUT) $(FW_BASE) |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x00000 $(FW_BASE)/0x00000.bin 0x40000 $(FW_BASE)/0x40000.bin
|
||||||
|
|
||||||
|
blankflash: |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x7E000 $(SDK_BASE)/bin/blank.bin
|
||||||
|
|
||||||
|
htmlflash: libesphttpd |
||||||
|
$(Q) if [ $$(stat -c '%s' libesphttpd/webpages.espfs) -gt $$(( $(ESPFS_SIZE) )) ]; then echo "webpages.espfs too big!"; false; fi
|
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPFS_POS) libesphttpd/webpages.espfs
|
@ -0,0 +1,28 @@ |
|||||||
|
#Makefile with the options specific to the build of a non-upgradable firmware with
|
||||||
|
#the espfs included in the firmware binary.
|
||||||
|
|
||||||
|
# linker script used for the linker step
|
||||||
|
LD_SCRIPT = eagle.app.v6.ld
|
||||||
|
# Extra script to tell the linker the correct irom0 memory available
|
||||||
|
EXTRA_LD_SCRIPTS = ldscript_memspecific.ld
|
||||||
|
|
||||||
|
TARGET_OUT := $(addprefix $(BUILD_BASE)/,$(TARGET).out)
|
||||||
|
|
||||||
|
$(TARGET_OUT): $(APP_AR) $(EXTRA_LD_SCRIPTS) |
||||||
|
$(vecho) "LD $@"
|
||||||
|
$(Q) $(LD) -Llibesphttpd -L$(SDK_LIBDIR) $(LD_SCRIPT) $(EXTRA_LD_SCRIPTS) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@
|
||||||
|
|
||||||
|
$(FW_BASE): $(TARGET_OUT) |
||||||
|
$(vecho) "FW $@"
|
||||||
|
$(Q) mkdir -p $@
|
||||||
|
$(Q) $(ESPTOOL) elf2image $(TARGET_OUT) --output $@/
|
||||||
|
|
||||||
|
flash: $(TARGET_OUT) $(FW_BASE) |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x00000 $(FW_BASE)/0x00000.bin 0x40000 $(FW_BASE)/0x40000.bin
|
||||||
|
|
||||||
|
blankflash: |
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x7E000 $(SDK_BASE)/bin/blank.bin
|
||||||
|
|
||||||
|
htmlflash: libesphttpd |
||||||
|
$(Q) if [ $$(stat -c '%s' libesphttpd/webpages.espfs) -gt $$(( $(ESPFS_SIZE) )) ]; then echo "webpages.espfs too big!"; false; fi
|
||||||
|
$(Q) $(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPFS_POS) libesphttpd/webpages.espfs
|
Loading…
Reference in new issue