Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)
User avatar
By ekalyvio
#71817 Hello.
I have downloaded the ESP8266 SDK from https://github.com/pfalcon/esp-open-sdk.
After installing it, I also installed the:
https://github.com/Superhouse/esp-open-rtos.git (not sure if I had to install it).
Inside the esp-open-rtos/examples/blinky folder, there is the make file that points to:
Code: Select allinclude ../../common.mk


On the common.mk file, there is the following target:
Code: Select allflash: all
   $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \
      0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS)


This is actually the following command:
Code: Select allesptool.py -p /dev/ttyUSB0 --baud 115200 write_flash -fs 32m -fm qio -ff 40m \
   0x0 ../../bootloader/firmware_prebuilt/rboot.bin 0x1000 ../../bootloader/firmware_prebuilt/blank_config.bin 0x2000 ./firmware/blink.bin


My question is, why it uploads data at 0x2000 address?

If I look at the Esspressif manual (http://espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_en.pdf), there is nowhere stating about address 0x2000 either in the OTA firmware or the Non-OTA firmware.

Personally, for my 4 MBytes ESP board (Adafruit Huzzah), I would expect the tool to flash my software to either 0x1000 address, or something like address 0x81000.

Why is the blink.bin loaded at 0x2000 address? Am I missing something?

Thank you very much.
User avatar
By davydnorris
#71830 I believe the Open RTOS uses rboot as the bootloader and not the standard boot image.

rboot is slightly larger and so needs the user land to start at 2000 instead of 1000
User avatar
By ekalyvio
#71838 Thanks for letting me know.
Yes it actually uploads a 4KB rboot.bin and a 4KB blank_config.bin before uploading at address 0x2000 the bin file of the software.
That means that the flashing addresses do not depend on the hardware itself but rather on the SDK being used?