Sming - Open Source framework for high efficiency native ESP8266 development

User avatar
By dereulenspiegel
#28548 Hello everyone,

I just found about Sming and had a closer look. In many aspects it looks like the solution I want for developing native code for the ESP8266. But while creating my own example and testing some of the example I noticed that as soon as I have a files folder in my project the compiled and flashed ROM doesn't do anything. The same code without files folder works just fine. So I guess the problem is Spiff as soon as files are in the image.
Did anyone of you notice a similar problem (and was able to solve it)? Is this a known bug I overlooked? Do you need more information?

Thanks in advance
User avatar
By alonewolfx2
#28657 firstly i need makefile log and serial bootlog. how many files are there in files folder? what is total folder size?
User avatar
By dereulenspiegel
#28683 Thanks for your answer. There are two files one 323 Bytes long the other 265 Bytes. Unfortunately there is no serial boot log. Thats what I meant by "breaking my Firmware". The ESP8266 just doesn't output anything.

Here is my verbose Make output

Code: Select allmkdir -p out/build/app
mkdir -p out/build//Users/till/Development/git-repos/Sming/Sming/appinit
mkdir -p out/firmware
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ -Iapp -I/Users/till/Development/git-repos/Sming/Sming/appinit -Iapp/include -I/Users/till/Development/git-repos/Sming/Sming/appinit/include -Iinclude -I/Users/till/Development/git-repos/Sming/Sming/include -I/Users/till/Development/git-repos/Sming/Sming/ -I/Users/till/Development/git-repos/Sming/Sming/system/include -I/Users/till/Development/git-repos/Sming/Sming/Wiring -I/Users/till/Development/git-repos/Sming/Sming/Libraries -I/Users/till/Development/git-repos/Sming/Sming/SmingCore -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/../include -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/include -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -nostdlib -mlongcalls -mtext-section-literals -finline-functions -fdata-sections -ffunction-sections -D__ets__ -DICACHE_FLASH -DARDUINO=106 -fno-rtti -fno-exceptions -std=c++11 -felide-constructors -c app/application.cpp -o out/build/app/application.o
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ -Iapp -I/Users/till/Development/git-repos/Sming/Sming/appinit -Iapp/include -I/Users/till/Development/git-repos/Sming/Sming/appinit/include -Iinclude -I/Users/till/Development/git-repos/Sming/Sming/include -I/Users/till/Development/git-repos/Sming/Sming/ -I/Users/till/Development/git-repos/Sming/Sming/system/include -I/Users/till/Development/git-repos/Sming/Sming/Wiring -I/Users/till/Development/git-repos/Sming/Sming/Libraries -I/Users/till/Development/git-repos/Sming/Sming/SmingCore -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/../include -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/include -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -nostdlib -mlongcalls -mtext-section-literals -finline-functions -fdata-sections -ffunction-sections -D__ets__ -DICACHE_FLASH -DARDUINO=106 -fno-rtti -fno-exceptions -std=c++11 -felide-constructors -c app/cgi_brew_step.cpp -o out/build/app/cgi_brew_step.o
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ -Iapp -I/Users/till/Development/git-repos/Sming/Sming/appinit -Iapp/include -I/Users/till/Development/git-repos/Sming/Sming/appinit/include -Iinclude -I/Users/till/Development/git-repos/Sming/Sming/include -I/Users/till/Development/git-repos/Sming/Sming/ -I/Users/till/Development/git-repos/Sming/Sming/system/include -I/Users/till/Development/git-repos/Sming/Sming/Wiring -I/Users/till/Development/git-repos/Sming/Sming/Libraries -I/Users/till/Development/git-repos/Sming/Sming/SmingCore -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/../include -I/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/include -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -nostdlib -mlongcalls -mtext-section-literals -finline-functions -fdata-sections -ffunction-sections -D__ets__ -DICACHE_FLASH -DARDUINO=106 -fno-rtti -fno-exceptions -std=c++11 -felide-constructors -c /Users/till/Development/git-repos/Sming/Sming/appinit/user_main.cpp -o out/build//Users/till/Development/git-repos/Sming/Sming/appinit/user_main.o
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar cru out/build/app_app.a out/build/app/application.o out/build/app/cgi_brew_step.o out/build//Users/till/Development/git-repos/Sming/Sming/appinit/user_main.o
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -L/Users/till/Development/git-repos/Sming/Sming/compiler/lib/ -L/Volumes/ESP-Open-SDK/esp-open-sdk/sdk/lib -T/Users/till/Development/git-repos/Sming/Sming/compiler/ld/eagle.app.v6.cpp.ld -nostdlib -u call_user_start -Wl,-static -Wl,--gc-sections -Wl,-Map=out/firmware/firmware.map -Wl,--start-group -lmicroc -lmicrogcc -lhal -lphy -lpp -lnet80211 -llwip -lwpa -lmain -lsming out/build/app_app.a -Wl,--end-group -o out/build/app.out
if [ -f "out/fwMeminfo" ]; then \
     mv out/fwMeminfo out/firmware/fwMeminfo.old; \
   fi
/Volumes/ESP-Open-SDK/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-objdump -h -j .data -j .rodata -j .bss -j .text -j .irom0.text out/build/app.out > out/firmware/fwMeminfo.new
if [[ -f "out/firmware/fwMeminfo.new" && -f "out/firmware/fwMeminfo.old" ]]; then \
     awk -F "|" 'FILENAME == "out/firmware/fwMeminfo.old" { arr[$1]=$5 } FILENAME == "out/firmware/fwMeminfo.new" { if (arr[$1] != $5){printf "%s%s%+d%s", substr($0, 1, length($0) - 1)," (",$5 - arr[$1],")\n" } else {print $0} }' out/firmware/fwMeminfo.old out/firmware/fwMeminfo.new; \
   elif [ -f "out/firmware/fwMeminfo.new" ]; then \
     cat out/firmware/fwMeminfo.new; \
   fi

out/build/app.out:     file format elf32-xtensa-le

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000350  3ffe8000  3ffe8000  000000e0  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  1 .rodata       00001a6c  3ffe8350  3ffe8350  00000430  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          000074a0  3ffe9dc0  3ffe9dc0  00001ea0  2**4
                  ALLOC
  3 .irom0.text   0003801e  40209000  40209000  000075b0  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .text         0000570f  40100000  40100000  00001e9c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
/Volumes/ESP-Open-SDK/esp-open-sdk/esptool/esptool.py elf2image out/build/app.out -ff 40m -fm qio -fs 4m -o out/firmware/
# Generating spiffs_bin
if [ -d "files" ]; then \
       echo "files directory exists. Creating spiff_rom.bin"; \
       spiffy 262144   files; \
       mv spiff_rom.bin out/firmware/spiff_rom.bin; \
   else \
       echo "No files found in ./files."; \
       echo "Creating empty spiff_rom.bin ($(stat -L -f%z /Users/till/Development/git-repos/Sming/Sming/compiler/data/blankfs.bin) bytes)"; \
    cp /Users/till/Development/git-repos/Sming/Sming/compiler/data/blankfs.bin out/firmware/spiff_rom.bin; \
   fi
files directory exists. Creating spiff_rom.bin
Creating rom spiff_rom.bin of size 262144 bytes
Adding files in directory files
Unable to read file .
Unable to read file ..
index.html added to spiffs (323 bytes)
style.css added to spiffs (265 bytes)


I am then trying to flash this via "make flash" to an ESP-01. Strangely without adding files everything works as expected (except that I can't deliver files via HTTP of course).
User avatar
By alonewolfx2
#28982 you are using esp-01 soo you have 512kb flash. and i saw spiff size is 262144 . there is too big. you cant use more than ~250kb due to airota. please change spiffy size. 192000 for ex: