summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-03 15:40:53 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-03 15:45:14 +0300
commit8d2bcaf3cdf5f908dd44bf822b65d807c8215bcc (patch)
treef9385db2274cb7765cacd899756d6d4eae5352a1
parent9698a60591b47798e24040d61df809f9d6e3584b (diff)
downloadmicropython-8d2bcaf3cdf5f908dd44bf822b65d807c8215bcc.tar.gz
micropython-8d2bcaf3cdf5f908dd44bf822b65d807c8215bcc.zip
esp8266: Minimize gap between Inst/DataRAM segments and FlashROM segment.
With .rodata being in FlashROM now, gap can be much smaller now. InstRAM can be max 32K, and with segment headers, that already makes it more than 32K. Then there's some .data still, and the next Flash page boundary is 0x9000. That figure should be more or less future-proof. TODO: Refactor makeimg to take FlashROM segment offset from file name.
-rw-r--r--esp8266/Makefile4
-rw-r--r--esp8266/esp8266.ld2
-rw-r--r--esp8266/makeimg.py6
3 files changed, 7 insertions, 5 deletions
diff --git a/esp8266/Makefile b/esp8266/Makefile
index 3bb63dd873..6790d5f744 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -150,7 +150,7 @@ $(BUILD)/frozen.c: $(wildcard $(SCRIPTDIR)/*) $(CONFVARS_FILE)
deploy: $(BUILD)/firmware-combined.bin
$(ECHO) "Writing $< to the board"
#$(Q)esptool.py --port $(PORT) write_flash 0 $<
- $(Q)esptool.py --port $(PORT) --baud $(BAUD) write_flash --flash_size=8m 0 $(BUILD)/firmware.elf-0x00000.bin 0x10000 $(BUILD)/firmware.elf-0x10000.bin
+ $(Q)esptool.py --port $(PORT) --baud $(BAUD) write_flash --flash_size=8m 0 $(BUILD)/firmware.elf-0x00000.bin 0x9000 $(BUILD)/firmware.elf-0x0[1-f]000.bin
reset:
echo -e "\r\nimport pyb; pyb.hard_reset()\r\n" >$(PORT)
@@ -158,7 +158,7 @@ reset:
$(BUILD)/firmware-combined.bin: $(BUILD)/firmware.elf
$(ECHO) "Create $@"
$(Q)esptool.py elf2image $^
- $(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x10000.bin $@
+ $(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x0[1-f]000.bin $@
$(BUILD)/firmware.elf: $(OBJ)
$(ECHO) "LINK $@"
diff --git a/esp8266/esp8266.ld b/esp8266/esp8266.ld
index 87a0e5488a..a74e2d25d8 100644
--- a/esp8266/esp8266.ld
+++ b/esp8266/esp8266.ld
@@ -5,7 +5,7 @@ MEMORY
dport0_0_seg : org = 0x3ff00000, len = 0x10
dram0_0_seg : org = 0x3ffe8000, len = 0x14000
iram1_0_seg : org = 0x40100000, len = 0x8000
- irom0_0_seg : org = 0x40210000, len = 0x80000
+ irom0_0_seg : org = 0x40209000, len = 0x80000
}
/* define the top of RAM */
diff --git a/esp8266/makeimg.py b/esp8266/makeimg.py
index 1ac681cb74..e63f956bdd 100644
--- a/esp8266/makeimg.py
+++ b/esp8266/makeimg.py
@@ -1,5 +1,7 @@
import sys
+SEGS_MAX_SIZE = 0x9000
+
assert len(sys.argv) == 4
with open(sys.argv[3], 'wb') as fout:
@@ -9,7 +11,7 @@ with open(sys.argv[3], 'wb') as fout:
fout.write(data_flash)
print('flash ', len(data_flash))
- pad = b'\xff' * (0x10000 - len(data_flash))
+ pad = b'\xff' * (SEGS_MAX_SIZE - len(data_flash))
fout.write(pad)
print('padding ', len(pad))
@@ -18,4 +20,4 @@ with open(sys.argv[3], 'wb') as fout:
fout.write(data_rom)
print('irom0text', len(data_rom))
- print('total ', 0x10000 + len(data_rom))
+ print('total ', SEGS_MAX_SIZE + len(data_rom))