• Hi,

    I'm trying to get the latest build of Espruino but I'm not able to build from source.

    As README says, I built esp-open-sdk without errors. I also cloned espressif-sdk from https://github.com/espressif/ESP8266_RTO­S_SDK as stated here. As far as I could understand, there is no need to build espressif's SDK.

    Then I used following script to call make:

    #! /bin/bash
    export ESP8266_BOARD=1
    [#export](https://forum.espruino.com/sea­rch/?q=%23export) FLASH_4MB=1
    export ESP8266_SDK_ROOT=${R}/ESP8266_RTOS_SDK
    export PATH=$PATH:${R}/esp-open-sdk/xtensa-lx10­6-elf/bin/
    export COMPORT=/dev/ttyUSB0
    make $*

    No success:

    $ ./run-make 
    CC targets/esp8266/user_main.o
    targets/esp8266/user_main.c:17:28: fatal error: user_interface.h: No such file or directory
     [#include](https://forum.espruino.com/se­arch/?q=%23include) <user_interface.h>
    compilation terminated.
    Makefile:1705: recipe for target 'targets/esp8266/user_main.o' failed
    make: *** [targets/esp8266/user_main.o] Error 1
  • Just moved this to the ESP8266 section...

  • I guess that value for ESP8266_SDK_ROOT is not correct.

    ls -l /home/ceremcem/embedded/ESP8266_RTOS_SDK­/include/user_interface.h
  • Well, I changed the export line to:

    export ESP8266_SDK_ROOT="${R}/esp-espressif-sdk­/ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP82­66_NONOS_SDK"

    and the problem went away. Now we have a new problem of lwip:

    ldcannot : findcannot -llwip_536 find
  • I think there is a reference to a forum post, and that refers to where to get that library, sorry a bit vague but don't have the info to hand at the moment

  • You mean this one and the lwip link points to here. I unzipped the archieve and moved liblwip_536.a to ${ESP8266_SDK_ROOT}/lib/. Now we progressed and new error is this:

    cp: cannot stat ‘/home/ceremcem/embedded/esp-espressif-s­dk/ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP­8266_NONOS_SDK/bin/boot_v1.4(b1).bin’: No such file or directory

    I simply created a symlink to bin/boot_v1.5.bin, so the result is:

    Generating pin info
    Generating platform configs
    Generating JS wrappers
    Generating pin info
    WRAPPERSOURCES = src/jswrap_array.c src/jswrap_arraybuffer.c src/jswrap_date.c src/jswrap_error.c src/jswrap_espruino.c src/jswrap_flash.c src/jswrap_functions.c src/jswrap_interactive.c src/jswrap_io.c src/jswrap_json.c src/jswrap_modules.c src/jswrap_pin.c src/jswrap_number.c src/jswrap_object.c src/jswrap_onewire.c src/jswrap_pipe.c src/jswrap_process.c src/jswrap_promise.c src/jswrap_serial.c src/jswrap_spi_i2c.c src/jswrap_stream.c src/jswrap_string.c src/jswrap_waveform.c libs/math/jswrap_math.c libs/graphics/jswrap_graphics.c libs/network/jswrap_net.c libs/network/http/jswrap_http.c libs/network/js/jswrap_jsnetwork.c libs/network/esp8266/jswrap_esp8266_netw­ork.c targets/esp8266/jswrap_esp8266.c targets/esp8266/jswrap_nodemcu.c libs/network/telnet/jswrap_telnet.c libs/crypto/jswrap_crypto.c
    CC src/jslex.o
    CC src/jsvar.o
    CC src/jsvariterator.o
    CC src/jsutils.o
    CC src/jsnative.o
    CC src/jsparse.o
    CC src/jspin.o
    CC src/jsinteractive.o
    CC src/jsdevices.o
    CC src/jstimer.o
    CC src/jsspi.o
    CC gen/jswrapper.o
    CC libs/compression/heatshrink/heatshrink_e­ncoder.o
    CC libs/compression/heatshrink/heatshrink_d­ecoder.o
    CC libs/compression/compress_heatshrink.o
    CC libs/graphics/bitmap_font_4x6.o
    CC libs/graphics/graphics.o
    CC libs/graphics/lcd_arraybuffer.o
    CC libs/graphics/lcd_js.o
    CC libs/network/network.o
    CC libs/network/socketserver.o
    CC libs/network/socketerrors.o
    CC libs/network/js/network_js.o
    CC libs/network/esp8266/network_esp8266.o
    CC libs/network/esp8266/pktbuf.o
    CC libs/network/esp8266/ota.o
    CC libs/crypto/mbedtls/library/sha1.o
    CC libs/crypto/mbedtls/library/sha256.o
    CC libs/crypto/mbedtls/library/sha512.o
    CC /home/ceremcem/embedded/Espruino/gen/jsp­ininfo.o
    CC src/jswrap_array.o
    CC src/jswrap_arraybuffer.o
    CC src/jswrap_date.o
    CC src/jswrap_error.o
    CC src/jswrap_espruino.o
    CC src/jswrap_flash.o
    CC src/jswrap_functions.o
    CC src/jswrap_interactive.o
    CC src/jswrap_io.o
    CC src/jswrap_json.o
    CC src/jswrap_modules.o
    CC src/jswrap_pin.o
    CC src/jswrap_number.o
    CC src/jswrap_object.o
    CC src/jswrap_onewire.o
    CC src/jswrap_pipe.o
    CC src/jswrap_process.o
    CC src/jswrap_promise.o
    CC src/jswrap_serial.o
    CC src/jswrap_spi_i2c.o
    CC src/jswrap_stream.o
    CC src/jswrap_string.o
    CC src/jswrap_waveform.o
    CC libs/math/jswrap_math.o
    CC libs/graphics/jswrap_graphics.o
    CC libs/network/jswrap_net.o
    CC libs/network/http/jswrap_http.o
    CC libs/network/js/jswrap_jsnetwork.o
    CC libs/network/esp8266/jswrap_esp8266_netw­ork.o
    CC targets/esp8266/jswrap_esp8266.o
    CC targets/esp8266/jswrap_nodemcu.o
    CC libs/network/telnet/jswrap_telnet.o
    CC libs/crypto/jswrap_crypto.o
    CC targets/esp8266/uart.o
    CC targets/esp8266/spi.o
    CC targets/esp8266/user_main.o
    CC targets/esp8266/log.o
    CC targets/esp8266/jshardware.o
    CC targets/esp8266/i2c_master.o
    CC targets/esp8266/esp8266_board_utils.o
    CC targets/esp8266/gdbstub.o
    LD espruino_esp8266_partial.o
    LD espruino_esp8266_user1.elf
    LD espruino_esp8266_user2.elf
    To disassemble: xtensa-lx106-elf-objdump -d -l -x espruino_esp8266_user2.elf
    Idx Name          Size      VMA       LMA       File off  Algn
      3 .text         00006a70  40100000  40100000  00002f20  2**2
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      4 .irom0.text   0006b074  40201010  40201010  00009990  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
    To disassemble: xtensa-lx106-elf-objdump -d -l -x espruino_esp8266_user1.elf
      4 -rwxr-xr-x 1 ceremcem ceremcem   2204 May 13 15:10 eagle.app.v6.data.bin
    432 -rwxr-xr-x 1 ceremcem ceremcem 438388 May 13 15:10 eagle.app.v6.irom0text.bin
     12 -rwxr-xr-x 1 ceremcem ceremcem   9632 May 13 15:10 eagle.app.v6.rodata.bin
     28 -rwxr-xr-x 1 ceremcem ceremcem  27248 May 13 15:10 eagle.app.v6.text.bin
    ** user1.bin uses  477540 bytes of 491520 available
  • and the problem went away. Now we have a new problem of lwip:


  • You seem to be mixing SDK 1.5.3 and lwip from SDK 1.5.0. YMMV...

  • Unless you're trying to fix some specific problem using 1.5.3 I suggest using 1.5.0 and waiting for 1.5.4: http://bbs.espressif.com/viewtopic.php?f­=7&t=2104

  • I found SDK 1.5.0 and liblwip_536_for_ESP8266_NONOS_SDK_V1.5.0­.zip, downloaded them, extracted lwip_....zip and copied the liblwip_536.a file into [SDK-1.5.0]/lib folder. It seems everything went OK. Result binaries are here, FYI

  • @tve if it weren't for you to warn me I would struggle with the following error:

    Uncaught process.memory() didn't contain information about flash memory
     at line 1 col 215
    ...tart||!a.flash_length)throw"process.m­emory() didn't contain ...
    in function called from line 1 col 63
    in function "Config" called from line 1 col 611
    ...inOutRx=14,cfg=new Config(1),defaultWifi={essid:"Android


  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

[SOLVED] Confused on building Espruino for ESP8266

Posted by Avatar for ceremcem @ceremcem