How to load ELF image build by Arduino using Non-OS SDK boot
Posted: Tue Jun 01, 2021 2:30 am
Hi Experts,
I have a requirement where I need to use elf image built using Arduino IDE but with boot_v1.6.bin provided in the NonOS SDK. I performed following steps
Background:
1. Arduino builds 2 elf files (sketch elf file and eboot elf file) then uses elf2bin.py (https://github.com/esp8266/Arduino/blob ... elf2bin.py) to stitch single binary that can be flashed on address 0x0. As we want to use SDK boot loader so we skipped eboot.elf file. and used only sketch elf file to follow NONOS SDK process to create a bin file.
My Sketch Elf File Name: hello.ino.elf
Step 1: Run objcopy command to generate following files as per Make file rules
Step2: Run gen_appbin.py to create binary file eagle.app.flash.bin
Step3: Flashed following binaries on ESP12 F using ESP Download Tool
Run the board. But it did not work (no output on console except for some junk). As the sketch is nothing but a C++ code, I believe it should have worked. Can you please guide me.
I have a requirement where I need to use elf image built using Arduino IDE but with boot_v1.6.bin provided in the NonOS SDK. I performed following steps
Background:
1. Arduino builds 2 elf files (sketch elf file and eboot elf file) then uses elf2bin.py (https://github.com/esp8266/Arduino/blob ... elf2bin.py) to stitch single binary that can be flashed on address 0x0. As we want to use SDK boot loader so we skipped eboot.elf file. and used only sketch elf file to follow NONOS SDK process to create a bin file.
My Sketch Elf File Name: hello.ino.elf
Step 1: Run objcopy command to generate following files as per Make file rules
Code: Select all
xtensa-lx106-elf-objcopy.exe --only-section .text -O binary hello.ino.elf eagle.app.v6.text.bin
xtensa-lx106-elf-objcopy.exe --only-section .data -O binary hello.ino.elf eagle.app.v6.data.bin
xtensa-lx106-elf-objcopy.exe --only-section .rodata -O binary hello.ino.elf eagle.app.v6.rodata.bin
xtensa-lx106-elf-objcopy.exe --only-section .irom0.text -O binary hello.ino.elf eagle.app.v6.irom0text.bin
Step2: Run gen_appbin.py to create binary file eagle.app.flash.bin
Code: Select all
tools\gen_appbin.py hello.ino.elf 1 2 0 4 1
Step3: Flashed following binaries on ESP12 F using ESP Download Tool
Code: Select all
boot_v1.6.bin: 0x00000;
eagle.app.flash.bin: 0x01000;
esp_init_data_default.bin: 0x3FC000;
blank.bin: 0x3FE000;
Run the board. But it did not work (no output on console except for some junk). As the sketch is nothing but a C++ code, I believe it should have worked. Can you please guide me.