Pages

2017/12/01

ESP32 - Setting up ESP-IDF and starting a project using MINGW32

This post is about how to setup ESP-IDF for ESP32 development on computer running MS-Windows 8.1 OS. The post is based mainly on the material available at https://esp-idf.readthedocs.io/en/latest/get-started/index.html#get-esp-idf with additional info. added by myself while testing it out.

Host OS: MS-Windows 8.1, 64 bits
CPU: Intel Core i5, Dual Core.

Note,
It's extremely slow (2~3 hours) to execute the make command in MINGW32. It's better to install Ubuntu in VirtualBox for ESP32 development (only 1~2 minutes to execute the make command).

Setting up ESP-IDF

According to "ESP-IDF Programming Guide", the following are needed for developing applications for ESP32:

- PC loaded with either Windows, Linux or Mac operating system;

- Toolchain to build the Application for ESP32;

- ESP-IDF that essentially contains API for ESP32 and scripts to operate the Toolchain;

- A text editor to write programs (Projects) in C, e.g. Eclipse;

- The ESP32 board itself and a USB cable to connect it to the PC.

PC loaded with either Windows, Linux or Mac operating system

For this post, it will be done on a PC running Windows 8.1 OS.

Toolchain to build the Application for ESP32

Visit the site below to download the toolchain for Windows.

https://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html

As of the time (2017/12/1) when I wrote this post, below is the link to download the Windows all-in-one toolchain & MSYS2 zip file.

https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20171123.zip

Once downloaded, unzip the zip file to C:\ (or some other location, but this guide assumes C:\) and it will create an msys32 directory with a pre-prepared environment.

Checking the environment

Open a MSYS2 MINGW32 terminal window by running C:\msys32\mingw32.exe.


ESP-IDF that essentially contains API for ESP32 and scripts to operate the Toolchain

Besides the toolchain (that contains programs to compile and build the application), you also need ESP32 specific API / libraries. They are provided by Espressif in ESP-IDF repository. To get it, open the MSYS2 MINGW32 terminal by double click on mingw32.exe.


The terminal is up and running.


Navigate to the directory you want to put ESP-IDF, and clone it using git clone command:

git clone --recursive https://github.com/espressif/esp-idf.git


Below is the output message.

Wei-Hsiung Huang@WHToshibaNB MINGW32 ~
$ git clone --recursive https://github.com/espressif/esp-idf.git
Cloning into 'esp-idf'...
remote: Counting objects: 40404, done.
remote: Compressing objects: 100% (119/119), done.
remote: Total 40404 (delta 93), reused 102 (delta 63), pack-reused 40218
Receiving objects: 100% (40404/40404), 47.40 MiB | 271.00 KiB/s, done.
Resolving deltas: 100% (28285/28285), done.
Checking out files: 100% (2704/2704), done.
Submodule 'components/aws_iot/aws-iot-device-sdk-embedded-C' (https://github.com                                      /espressif/aws-iot-device-sdk-embedded-C.git) registered for path 'components/aw                                      s_iot/aws-iot-device-sdk-embedded-C'
Submodule 'components/bt/lib' (https://github.com/espressif/esp32-bt-lib.git) re                                      gistered for path 'components/bt/lib'
Submodule 'components/coap/libcoap' (https://github.com/obgm/libcoap.git) regist                                      ered for path 'components/coap/libcoap'
Submodule 'components/esp32/lib' (https://github.com/espressif/esp32-wifi-lib.gi                                      t) registered for path 'components/esp32/lib'
Submodule 'components/esptool_py/esptool' (https://github.com/espressif/esptool.                                      git) registered for path 'components/esptool_py/esptool'
Submodule 'components/libsodium/libsodium' (https://github.com/jedisct1/libsodiu                                      m.git) registered for path 'components/libsodium/libsodium'
Submodule 'components/micro-ecc/micro-ecc' (https://github.com/kmackay/micro-ecc                                      .git) registered for path 'components/micro-ecc/micro-ecc'
Submodule 'components/nghttp/nghttp2' (https://github.com/nghttp2/nghttp2.git) r                                      egistered for path 'components/nghttp/nghttp2'
Submodule 'components/spiffs/spiffs' (https://github.com/pellepl/spiffs.git) reg                                      istered for path 'components/spiffs/spiffs'
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/aws_iot/aws-iot-device-s                                      dk-embedded-C'...
remote: Counting objects: 838, done.
remote: Total 838 (delta 0), reused 0 (delta 0), pack-reused 837
Receiving objects: 100% (838/838), 756.96 KiB | 385.00 KiB/s, done.
Resolving deltas: 100% (401/401), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/bt/lib'...
remote: Counting objects: 202, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 202 (delta 0), reused 1 (delta 0), pack-reused 199
Receiving objects: 100% (202/202), 1.04 MiB | 364.00 KiB/s, done.
Resolving deltas: 100% (118/118), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/coap/libcoap'...
remote: Counting objects: 5422, done.
remote: Total 5422 (delta 0), reused 0 (delta 0), pack-reused 5422
Receiving objects: 100% (5422/5422), 1.96 MiB | 286.00 KiB/s, done.
Resolving deltas: 100% (3815/3815), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/esp32/lib'...
remote: Counting objects: 2312, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 2312 (delta 0), reused 1 (delta 0), pack-reused 2302
Receiving objects: 100% (2312/2312), 31.07 MiB | 283.00 KiB/s, done.
Resolving deltas: 100% (1813/1813), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/esptool_py/esptool'...
remote: Counting objects: 1466, done.
Receiving objects:  96remote: Total 1466 (delta 0), reused 0 (delta 0), pack-reu                                      sed 1466
Receiving objects: 100% (1466/1466), 4.97 MiB | 302.00 KiB/s, done.
Resolving deltas: 100% (890/890), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/libsodium/libsodium'...
remote: Counting objects: 25799, done.
remote: Total 25799 (delta 0), reused 0 (delta 0), pack-reused 25799
Receiving objects: 100% (25799/25799), 6.46 MiB | 250.00 KiB/s, done.
Resolving deltas: 100% (14978/14978), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/micro-ecc/micro-ecc'...
remote: Counting objects: 1086, done.
remote: Total 1086 (delta 0), reused 0 (delta 0), pack-reused 1086
Receiving objects: 100% (1086/1086), 647.95 KiB | 406.00 KiB/s, done.
Resolving deltas: 100% (637/637), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/nghttp/nghttp2'...
remote: Counting objects: 37775, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 37775 (delta 0), reused 1 (delta 0), pack-reused 37771
Receiving objects: 100% (37775/37775), 28.87 MiB | 273.00 KiB/s, done.
Resolving deltas: 100% (28054/28054), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/spiffs/spiffs'...
remote: Counting objects: 1449, done.
remote: Total 1449 (delta 0), reused 0 (delta 0), pack-reused 1449
Receiving objects: 100% (1449/1449), 1001.66 KiB | 332.00 KiB/s, done.
Resolving deltas: 100% (1017/1017), done.
Submodule path 'components/aws_iot/aws-iot-device-sdk-embedded-C': checked out '                                      7132505b00d2dd57f48478e75efa636021919aae'
Submodule path 'components/bt/lib': checked out '856881b2768204ce2bf3584724324dd                                      dc8378f11'
Submodule path 'components/coap/libcoap': checked out '6468887a12666f88b8704d797                                      fc176cd4f40ee4c'
Submodule path 'components/esp32/lib': checked out '8919e66ee87d46c3f0c0f49598e8                                      a9b86105e50c'
Submodule path 'components/esptool_py/esptool': checked out '4dab24e1b28632d270a                                      df7305fe0d008d1acee99'
Submodule path 'components/libsodium/libsodium': checked out '70170c28c844a4786e                                      75efc626e1aeebc93caebc'
Submodule path 'components/micro-ecc/micro-ecc': checked out '14222e062d77f45321                                      676e813d9525f32a88e8fa'
Submodule path 'components/nghttp/nghttp2': checked out '3bcc416e13cc790e2fb45fc                                      fe9111d38609c5032'
Submodule 'third-party/mruby' (https://github.com/mruby/mruby) registered for pa                                      th 'components/nghttp/nghttp2/third-party/mruby'
Submodule 'third-party/neverbleed' (https://github.com/h2o/neverbleed.git) regis                                      tered for path 'components/nghttp/nghttp2/third-party/neverbleed'
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/nghttp/nghttp2/third-par                                      ty/mruby'...
remote: Counting objects: 40941, done.
remote: Compressing objects: 100% (82/82), done.
remote: Total 40941 (delta 85), reused 119 (delta 76), pack-reused 40780
Receiving objects: 100% (40941/40941), 9.43 MiB | 248.00 KiB/s, done.
Resolving deltas: 100% (25623/25623), done.
Cloning into '/home/Wei-Hsiung Huang/esp-idf/components/nghttp/nghttp2/third-party/neverbleed'...
remote: Counting objects: 181, done.
remote: Total 181 (delta 0), reused 0 (delta 0), pack-reused 181
Receiving objects: 100% (181/181), 54.99 KiB | 411.00 KiB/s, done.
Resolving deltas: 100% (107/107), done.
Submodule path 'components/nghttp/nghttp2/third-party/mruby': checked out '22464fe5a0a10f2b077eaba109ce1e912e4a77de'
Submodule path 'components/nghttp/nghttp2/third-party/neverbleed': checked out 'da5c2ab419a3bb8a4cc6c37a6c7f3e4bd4b41134'
Submodule path 'components/spiffs/spiffs': checked out 'f5e26c4e933189593a71c6b82cda381a7b21e41c'

Wei-Hsiung Huang@WHToshibaNB MINGW32 ~
$


Note that because the esp-idf build system does not support spaces in paths to esp-idf or to projects so I manually move the esp-idf folder and its contents to C:\msys32\esp.

Setup Path to ESP-IDF

The toolchain programs access ESP-IDF using IDF_PATH environment variable. This variable should be set up on your PC, otherwise projects will not build. Setting may be done manually, each time PC is restarted. Another option is to set up it permanently by defining IDF_PATH in user profile. To do so, follow instructions specific to Windows , Linux and MacOS in section Add IDF_PATH to User Profile.

Add IDF_PATH to User Profile
Ref.: https://esp-idf.readthedocs.io/en/latest/get-started/add-idf_path-to-profile.html#add-idf-path-to-profile-windows

To preserve setting of IDF_PATH environment variable between system restarts, add it to the user profile, following instructions below.

The user profile scripts are contained in C:/msys32/etc/profile.d/ directory. They are executed every time you open an MSYS2 window.

1. Create a new script file in C:/msys32/etc/profile.d/ directory. Name it export_idf_path.sh.


2. Identify the path to ESP-IDF directory. It is specific to your system configuration and may look something like C:\msys32\home\user-name\esp\esp-idf.

In my case, the path is C:\msys32\esp\esp-idf.

3. Add the export command to the script file, e.g.:

export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf"

Remember to replace back-slashes with forward-slashes in the original Windows path.

In my case, it's export IDF_PATH="C:/msys32/esp/esp-idf".


4. Save the script file.

5. Close MSYS2 window and open it again. Check if IDF_PATH is set, by typing:

printenv IDF_PATH

The path previusly entered in the script file should be printed out.

Below is the output before the IDF_PATH is added.


Below is the output after closing MSYS2 window and opening it again (using the C:\msys32\mingw32.exe command).



The path to the ESP-IDF is now added.

A text editor to write programs (Projects) in C, e.g. Eclipse

For me, I will use Notepad++.

The ESP32 board itself and a USB cable to connect it to the PC

For this post, I am using the ESP32-DevKitC board.


Start a project

Getting the example

For this post, I will be using the hello_world example that comes with the IDF. The example is located under C:\esp-idf-v2.1.1\examples\get-started\hello_world.


IMPORTANT!!
The esp-idf build system does not support spaces in paths to esp-idf or to projects.

Connecting ESP32 module to the PC

Connect ESP32 board to PC, check under what serial port the board is visible and verify if serial communication works. To do so, check the list of identified COM ports in the Windows Device Manager. Disconnect ESP32 and connect it back, to verify which port disappears from the list and then shows back again.

In my case, the module is connected to COM7.


Configure and compile

1. Copy the hello_world example from C:\msys32\esp\esp-idf\examples\get-started.


to C:\msys32\home\IEUser.


2. Double click on mingw32.exe to launch the terminal.


From within the terminal, issue the below command to change the working directory to where the hello_world example is located.

$ cd /home/ieuser/hello_world


Start project configuration utility menuconfig:

make menuconfig

It will take several minutes before the configuration menu appears.

Wei-Hsiung Huang@WHToshibaNB MINGW32 /home/ieuser/hello_world
$ make menuconfig
make[1]: Entering directory '/esp/esp-idf/tools/kconfig'
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o m
flex -L -P zconf -o zconf.lex.c zconf.l
zconf.l:256: warning, -s option given but default rule can be matched
bison -t -l -p zconf -o zconf.tab.c zconf.y
sed -E "s/\\x0D$//" zconf.gperf | gperf -t --output-file zconf.hash.c -a -C -E -g -k '1,3,$' -p -t
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o z
lxdialog/check-lxdialog.sh -check cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSESntl
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lc
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o l
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o l
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o l
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o l
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o l
cc -o mconf mconf.o zconf.tab.o lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o lxdialog/
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o c

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

GENCONFIG

If previous steps have been done correctly, the following menu will be displayed:


In the menu, navigate to Serial flasher config > Default serial port to configure the serial port, where project will be loaded to. Confirm selection by pressing enter, save configuration by selecting <Save> and then exit application by selecting <Exit>.


The configuration will be saved to /home/ieuser/hello_world/sdkconfig.


Double check again before <Exit>.


Run make flash to compile and write the firmware to the flash memory.

Note, it took over 2 hours for make flash to complete the code on my Core i5 laptop running Windows 8.1 using mingw32. Need to find other ways (Linux, virtual machine, etc.) to reduce this time. 

Wei-Hsiung Huang@WHToshibaNB MINGW32 /home/ieuser/hello_world
$ make flash
make[1]: Entering directory '/esp/esp-idf/tools/kconfig'
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o mconf.o mconf.c
flex -L -P zconf -o zconf.lex.c zconf.l
zconf.l:256: warning, -s option given but default rule can be matched
bison -t -l -p zconf -o zconf.tab.c zconf.y
sed -E "s/\\x0D$//" zconf.gperf | gperf -t --output-file zconf.hash.c -a -C -E -g -k '1,3,$' -p -t
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o zconf.tab.o zconf.tab.c
lxdialog/check-lxdialog.sh -check cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD -lncursesw -lintl
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/checklist.o lxdialog/checklist.c
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/util.o lxdialog/util.c
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/inputbox.o lxdialog/inputbox.c
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/textbox.o lxdialog/textbox.c
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/yesno.o lxdialog/yesno.c
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o lxdialog/menubox.o lxdialog/menubox.c
cc -o mconf mconf.o zconf.tab.o lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o -lncursesw -lintl
cc  -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE -MD   -c -o conf.o conf.c
cc -o conf conf.o  zconf.tab.o -lncursesw -lintl
make[1]: Leaving directory '/esp/esp-idf/tools/kconfig'
GENCONFIG
CC build/bootloader/bootloader_support/src/bootloader_random.o
CC build/bootloader/bootloader_support/src/flash_encrypt.o
CC build/bootloader/bootloader_support/src/bootloader_sha.o
CC build/bootloader/bootloader_support/src/esp_image_format.o
CC build/bootloader/bootloader_support/src/flash_partitions.o
CC build/bootloader/bootloader_support/src/secure_boot_signatures.o
CC build/bootloader/bootloader_support/src/secure_boot.o
CC build/bootloader/bootloader_support/src/efuse.o
CC build/bootloader/bootloader_support/src/bootloader_flash.o
AR build/bootloader/bootloader_support/libbootloader_support.a
CC build/bootloader/log/log.o
AR build/bootloader/log/liblog.a
CC build/bootloader/spi_flash/spi_flash_rom_patch.o
AR build/bootloader/spi_flash/libspi_flash.a
CC build/bootloader/micro-ecc/micro-ecc/uECC.o
AR build/bootloader/micro-ecc/libmicro-ecc.a
CC build/bootloader/soc/esp32/rtc_clk.o
CC build/bootloader/soc/esp32/rtc_time.o
CC build/bootloader/soc/esp32/rtc_sleep.o
CC build/bootloader/soc/esp32/rtc_init.o
CC build/bootloader/soc/esp32/soc_memory_layout.o
CC build/bootloader/soc/esp32/cpu_util.o
CC build/bootloader/soc/esp32/rtc_pm.o
AR build/bootloader/soc/libsoc.a
CC build/bootloader/main/flash_qio_mode.o
CC build/bootloader/main/bootloader_start.o
AR build/bootloader/main/libmain.a
LD build/bootloader/bootloader.elf
esptool.py v2.1
Building partitions from /esp/esp-idf/components/partition_table/partitions_singleapp.csv...
CC build/app_trace/app_trace.o
CC build/app_trace/host_file_io.o
CC build/app_trace/app_trace_util.o
CC build/app_trace/gcov/gcov_rtio.o
AR build/app_trace/libapp_trace.a
CC build/app_update/esp_ota_ops.o
AR build/app_update/libapp_update.a
AR build/aws_iot/libaws_iot.a
CC build/bootloader_support/src/bootloader_random.o
CC build/bootloader_support/src/flash_encrypt.o
CC build/bootloader_support/src/bootloader_sha.o
CC build/bootloader_support/src/esp_image_format.o
CC build/bootloader_support/src/flash_partitions.o
CC build/bootloader_support/src/secure_boot_signatures.o
CC build/bootloader_support/src/secure_boot.o
CC build/bootloader_support/src/efuse.o
CC build/bootloader_support/src/bootloader_flash.o
AR build/bootloader_support/libbootloader_support.a
CC build/bt/bt.o
AR build/bt/libbt.a
CC build/coap/libcoap/src/address.o
CC build/coap/libcoap/src/async.o
CC build/coap/libcoap/src/block.o
CC build/coap/libcoap/src/coap_time.o
CC build/coap/libcoap/src/debug.o
CC build/coap/libcoap/src/encode.o
CC build/coap/libcoap/src/hashkey.o
CC build/coap/libcoap/src/mem.o
CC build/coap/libcoap/src/net.o
CC build/coap/libcoap/src/option.o
CC build/coap/libcoap/src/pdu.o
CC build/coap/libcoap/src/resource.o
CC build/coap/libcoap/src/str.o
CC build/coap/libcoap/src/subscribe.o
CC build/coap/libcoap/src/uri.o
CC build/coap/port/coap_io_socket.o
AR build/coap/libcoap.a
CC build/console/linenoise/linenoise.o
CC build/console/argtable3/argtable3.o
CC build/console/commands.o
CC build/console/split_argv.o
AR build/console/libconsole.a
CXX build/cxx/cxx_exception_stubs.o
CXX build/cxx/cxx_guards.o
AR build/cxx/libcxx.a
CC build/driver/rtc_module.o
CC build/driver/i2c.o
CC build/driver/sdmmc_host.o
CC build/driver/spi_slave.o
CC build/driver/sdmmc_transaction.o
CC build/driver/mcpwm.o
CC build/driver/rmt.o
CC build/driver/sdspi_crc.o
CC build/driver/pcnt.o
CC build/driver/timer.o
CC build/driver/gpio.o
CC build/driver/sdspi_host.o
CC build/driver/ledc.o
CC build/driver/periph_ctrl.o
CC build/driver/i2s.o
CC build/driver/sdspi_transaction.o
CC build/driver/uart.o
CC build/driver/sigmadelta.o
CC build/driver/spi_master.o
CC build/driver/spi_common.o
AR build/driver/libdriver.a
CC build/esp32/int_wdt.o
CC build/esp32/brownout.o
CC build/esp32/system_api.o
CC build/esp32/restore.o
CC build/esp32/dport_access.o
CC build/esp32/esp_timer.o
CC build/esp32/hw_random.o
CC build/esp32/pm_esp32.o
CC build/esp32/event_loop.o
CC build/esp32/pm_locks.o
CC build/esp32/core_dump.o
CC build/esp32/ets_timer_legacy.o
CC build/esp32/intr_alloc.o
CC build/esp32/ipc.o
CC build/esp32/cache_err_int.o
CC build/esp32/fast_crypto_ops.o
CC build/esp32/freertos_hooks.o
CC build/esp32/clk.o
CC build/esp32/spiram_psram.o
CC build/esp32/esp_timer_esp32.o
CC build/esp32/wifi_init.o
CC build/esp32/pm_trace.o
CC build/esp32/phy_init.o
CC build/esp32/crosscore_int.o
CC build/esp32/wifi_internal.o
CC build/esp32/gdbstub.o
CC build/esp32/lib_printf.o
CC build/esp32/cpu_start.o
CC build/esp32/spiram.o
CC build/esp32/sleep_modes.o
CC build/esp32/smartconfig.o
CC build/esp32/task_wdt.o
CC build/esp32/event_default_handlers.o
CC build/esp32/stack_check.o
CC build/esp32/panic.o
CC build/esp32/hwcrypto/aes.o
CC build/esp32/hwcrypto/sha.o
AS build/esp32/dport_panic_highint_hdl.o
AR build/esp32/libesp32.a
CC build/esp_adc_cal/esp_adc_cal.o
CC build/esp_adc_cal/esp_adc_cal_lookup_tables.o
AR build/esp_adc_cal/libesp_adc_cal.a
CC build/ethernet/emac_main.o
CC build/ethernet/emac_dev.o
CC build/ethernet/eth_phy/phy_tlk110.o
CC build/ethernet/eth_phy/phy_lan8720.o
CC build/ethernet/eth_phy/phy_common.o
AR build/ethernet/libethernet.a
CC build/expat/library/xmltok_impl.o
CC build/expat/library/xmlrole.o
CC build/expat/library/xmlparse.o
CC build/expat/library/xmltok.o
CC build/expat/library/xmltok_ns.o
CC build/expat/port/chardata.o
CC build/expat/port/expat_element.o
CC build/expat/port/minicheck.o
AR build/expat/libexpat.a
CC build/fatfs/src/diskio.o
CC build/fatfs/src/vfs_fat.o
CC build/fatfs/src/diskio_spiflash.o
CC build/fatfs/src/vfs_fat_spiflash.o
CC build/fatfs/src/diskio_sdmmc.o
CC build/fatfs/src/vfs_fat_sdmmc.o
CC build/fatfs/src/ffunicode.o
CC build/fatfs/src/ff.o
CC build/fatfs/src/ffsystem.o
AR build/fatfs/libfatfs.a
CC build/freertos/xtensa_overlay_os_hook.o
CC build/freertos/FreeRTOS-openocd.o
CC build/freertos/timers.o
CC build/freertos/tasks.o
CC build/freertos/event_groups.o
CC build/freertos/port.o
CC build/freertos/xtensa_init.o
CC build/freertos/list.o
CC build/freertos/croutine.o
CC build/freertos/queue.o
CC build/freertos/xtensa_intr.o
CC build/freertos/ringbuf.o
AS build/freertos/portasm.o
AS build/freertos/xtensa_vector_defaults.o
AS build/freertos/xtensa_vectors.o
AS build/freertos/xtensa_context.o
AS build/freertos/xtensa_intr_asm.o
AR build/freertos/libfreertos.a
CC build/heap/heap_caps_init.o
CC build/heap/heap_caps.o
CC build/heap/multi_heap.o
CC build/heap/heap_trace.o
AR build/heap/libheap.a
AR build/idf_test/libidf_test.a
CC build/jsmn/src//jsmn.o
AR build/jsmn/libjsmn.a
CC build/json/library/cJSON.o
CC build/json/port/cJSON_Utils.o
AR build/json/libjson.a
CC build/libsodium/port/randombytes_esp32.o
CC build/libsodium/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.o
CC build/libsodium/libsodium/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.o
CC build/libsodium/libsodium/src/libsodium/crypto_auth/crypto_auth.o
CC build/libsodium/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.o
CC build/libsodium/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.o
CC build/libsodium/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.o
CC build/libsodium/libsodium/src/libsodium/crypto_box/crypto_box_easy.o
CC build/libsodium/libsodium/src/libsodium/crypto_box/crypto_box.o
CC build/libsodium/libsodium/src/libsodium/crypto_box/crypto_box_seal.o
CC build/libsodium/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.o
CC build/libsodium/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.o
CC build/libsodium/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.o
CC build/libsodium/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.o
CC build/libsodium/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.o
CC build/libsodium/libsodium/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/crypto_generichash.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/generichash_blake2.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.o
CC build/libsodium/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.o
CC build/libsodium/libsodium/src/libsodium/crypto_hash/crypto_hash.o
CC build/libsodium/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256.o
CC build/libsodium/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512.o
CC build/libsodium/libsodium/src/libsodium/crypto_kdf/blake2b/kdf_blake2b.o
CC build/libsodium/libsodium/src/libsodium/crypto_kdf/crypto_kdf.o
CC build/libsodium/libsodium/src/libsodium/crypto_kx/crypto_kx.o
CC build/libsodium/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.o
CC build/libsodium/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.o
CC build/libsodium/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.o
CC build/libsodium/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.o
CC build/libsodium/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.o
CC build/libsodium/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.o
CC build/libsodium/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.o
CC build/libsodium/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.o
CC build/libsodium/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.o
CC build/libsodium/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.o
CC build/libsodium/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.o
CC build/libsodium/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.o
CC build/libsodium/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.o
CC build/libsodium/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/crypto_sign.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.o
CC build/libsodium/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/crypto_stream.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.o
CC build/libsodium/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.o
CC build/libsodium/libsodium/src/libsodium/crypto_verify/sodium/verify.o
CC build/libsodium/libsodium/src/libsodium/randombytes/randombytes.o
CC build/libsodium/libsodium/src/libsodium/sodium/utils.o
CC build/libsodium/libsodium/src/libsodium/sodium/runtime.o
CC build/libsodium/libsodium/src/libsodium/sodium/version.o
CC build/libsodium/libsodium/src/libsodium/sodium/core.o
CC build/libsodium/port/crypto_hash_mbedtls/crypto_hash_sha512_mbedtls.o
CC build/libsodium/port/crypto_hash_mbedtls/crypto_hash_sha256_mbedtls.o
AR build/libsodium/liblibsodium.a
CC build/log/log.o
AR build/log/liblog.a
CC build/lwip/api/sockets.o
CC build/lwip/api/api_msg.o
CC build/lwip/api/err.o
CC build/lwip/api/netbuf.o
CC build/lwip/api/tcpip.o
CC build/lwip/api/netifapi.o
CC build/lwip/api/api_lib.o
CC build/lwip/api/netdb.o
CC build/lwip/api/pppapi.o
CC build/lwip/apps/dhcpserver.o
CC build/lwip/apps/sntp/sntp.o
CC build/lwip/apps/ping/esp_ping.o
CC build/lwip/apps/ping/ping.o
CC build/lwip/core/tcp_out.o
CC build/lwip/core/udp.o
CC build/lwip/core/def.o
CC build/lwip/core/timers.o
CC build/lwip/core/stats.o
CC build/lwip/core/netif.o
CC build/lwip/core/pbuf.o
CC build/lwip/core/tcp_in.o
CC build/lwip/core/raw.o
CC build/lwip/core/ip.o
CC build/lwip/core/dns.o
CC build/lwip/core/tcp.o
CC build/lwip/core/sys.o
CC build/lwip/core/memp.o
CC build/lwip/core/init.o
CC build/lwip/core/inet_chksum.o
CC build/lwip/core/mem.o
CC build/lwip/core/ipv4/icmp.o
CC build/lwip/core/ipv4/autoip.o
CC build/lwip/core/ipv4/ip4.o
CC build/lwip/core/ipv4/igmp.o
CC build/lwip/core/ipv4/ip4_addr.o
CC build/lwip/core/ipv4/dhcp.o
CC build/lwip/core/ipv4/ip_frag.o
CC build/lwip/core/ipv6/icmp6.o
CC build/lwip/core/ipv6/ethip6.o
CC build/lwip/core/ipv6/mld6.o
CC build/lwip/core/ipv6/nd6.o
CC build/lwip/core/ipv6/ip6.o
CC build/lwip/core/ipv6/ip6_addr.o
CC build/lwip/core/ipv6/inet6.o
CC build/lwip/core/ipv6/dhcp6.o
CC build/lwip/core/ipv6/ip6_frag.o
CC build/lwip/netif/ethernetif.o
CC build/lwip/netif/lowpan6.o
CC build/lwip/netif/ethernet.o
CC build/lwip/netif/etharp.o
CC build/lwip/netif/slipif.o
CC build/lwip/port/freertos/sys_arch.o
CC build/lwip/port/netif/ethernetif.o
CC build/lwip/port/netif/wlanif.o
CC build/lwip/port/debug/lwip_debug.o
CC build/lwip/port/vfs_lwip.o
AR build/lwip/liblwip.a
CC build/main/hello_world_main.o
AR build/main/libmain.a
CC build/mbedtls/library/havege.o
CC build/mbedtls/library/ssl_cookie.o
CC build/mbedtls/library/md5.o
CC build/mbedtls/library/certs.o
CC build/mbedtls/library/ssl_ciphersuites.o
CC build/mbedtls/library/camellia.o
CC build/mbedtls/library/x509_crl.o
CC build/mbedtls/library/threading.o
CC build/mbedtls/library/aesni.o
CC build/mbedtls/library/bignum.o
CC build/mbedtls/library/arc4.o
CC build/mbedtls/library/cipher_wrap.o
CC build/mbedtls/library/aes.o
CC build/mbedtls/library/xtea.o
CC build/mbedtls/library/base64.o
CC build/mbedtls/library/sha512.o
CC build/mbedtls/library/pkcs11.o
CC build/mbedtls/library/asn1write.o
CC build/mbedtls/library/oid.o
CC build/mbedtls/library/ecjpake.o
CC build/mbedtls/library/ssl_tls.o
CC build/mbedtls/library/debug.o
CC build/mbedtls/library/ecdh.o
CC build/mbedtls/library/x509_crt.o
CC build/mbedtls/library/ssl_srv.o
CC build/mbedtls/library/sha1.o
CC build/mbedtls/library/ecdsa.o
CC build/mbedtls/library/md2.o
CC build/mbedtls/library/x509_create.o
CC build/mbedtls/library/cmac.o
CC build/mbedtls/library/gcm.o
CC build/mbedtls/library/version.o
CC build/mbedtls/library/pem.o
CC build/mbedtls/library/padlock.o
CC build/mbedtls/library/asn1parse.o
CC build/mbedtls/library/timing.o
CC build/mbedtls/library/ssl_cli.o
CC build/mbedtls/library/pkwrite.o
CC build/mbedtls/library/ssl_cache.o
CC build/mbedtls/library/sha256.o
CC build/mbedtls/library/md_wrap.o
CC build/mbedtls/library/entropy.o
CC build/mbedtls/library/md.o
CC build/mbedtls/library/rsa.o
CC build/mbedtls/library/ripemd160.o
CC build/mbedtls/library/version_features.o
CC build/mbedtls/library/cipher.o
CC build/mbedtls/library/entropy_poll.o
CC build/mbedtls/library/dhm.o
CC build/mbedtls/library/error.o
CC build/mbedtls/library/ssl_ticket.o
CC build/mbedtls/library/x509.o
CC build/mbedtls/library/blowfish.o
CC build/mbedtls/library/ecp.o
CC build/mbedtls/library/md4.o
CC build/mbedtls/library/x509_csr.o
CC build/mbedtls/library/pkparse.o
CC build/mbedtls/library/pk.o
CC build/mbedtls/library/pkcs5.o
CC build/mbedtls/library/ccm.o
CC build/mbedtls/library/pkcs12.o
CC build/mbedtls/library/ecp_curves.o
CC build/mbedtls/library/pk_wrap.o
CC build/mbedtls/library/x509write_crt.o
CC build/mbedtls/library/ctr_drbg.o
CC build/mbedtls/library/platform.o
CC build/mbedtls/library/x509write_csr.o
CC build/mbedtls/library/des.o
CC build/mbedtls/library/hmac_drbg.o
CC build/mbedtls/library/memory_buffer_alloc.o
CC build/mbedtls/port/esp_sha512.o
CC build/mbedtls/port/esp_hardware.o
CC build/mbedtls/port/net_sockets.o
CC build/mbedtls/port/esp_bignum.o
CC build/mbedtls/port/esp_sha256.o
CC build/mbedtls/port/esp_sha1.o
CC build/mbedtls/port/mbedtls_debug.o
AR build/mbedtls/libmbedtls.a
CC build/mdns/mdns.o
AR build/mdns/libmdns.a
CC build/micro-ecc/micro-ecc/uECC.o
AR build/micro-ecc/libmicro-ecc.a
CC build/newlib/locks.o
CC build/newlib/syscall_table.o
CC build/newlib/syscalls.o
CC build/newlib/reent_init.o
CC build/newlib/time.o
AR build/newlib/libnewlib.a
CC build/nghttp/nghttp2/lib/nghttp2_map.o
CC build/nghttp/nghttp2/lib/nghttp2_queue.o
CC build/nghttp/nghttp2/lib/nghttp2_pq.o
CC build/nghttp/nghttp2/lib/nghttp2_submit.o
CC build/nghttp/nghttp2/lib/nghttp2_debug.o
CC build/nghttp/nghttp2/lib/nghttp2_hd_huffman_data.o
CC build/nghttp/nghttp2/lib/nghttp2_frame.o
CC build/nghttp/nghttp2/lib/nghttp2_helper.o
CC build/nghttp/nghttp2/lib/nghttp2_npn.o
CC build/nghttp/nghttp2/lib/nghttp2_option.o
CC build/nghttp/nghttp2/lib/nghttp2_buf.o
CC build/nghttp/nghttp2/lib/nghttp2_priority_spec.o
CC build/nghttp/nghttp2/lib/nghttp2_hd.o
CC build/nghttp/nghttp2/lib/nghttp2_stream.o
CC build/nghttp/nghttp2/lib/nghttp2_session.o
CC build/nghttp/nghttp2/lib/nghttp2_callbacks.o
CC build/nghttp/nghttp2/lib/nghttp2_rcbuf.o
CC build/nghttp/nghttp2/lib/nghttp2_hd_huffman.o
CC build/nghttp/nghttp2/lib/nghttp2_mem.o
CC build/nghttp/nghttp2/lib/nghttp2_version.o
CC build/nghttp/nghttp2/lib/nghttp2_outbound_item.o
CC build/nghttp/nghttp2/lib/nghttp2_http.o
CC build/nghttp/port/http_parser.o
AR build/nghttp/libnghttp.a
CXX build/nvs_flash/src/nvs_api.o
CXX build/nvs_flash/src/nvs_storage.o
CXX build/nvs_flash/src/nvs_pagemanager.o
CXX build/nvs_flash/src/nvs_item_hash_list.o
CXX build/nvs_flash/src/nvs_page.o
CXX build/nvs_flash/src/nvs_types.o
AR build/nvs_flash/libnvs_flash.a
CC build/openssl/library/ssl_stack.o
CC build/openssl/library/ssl_lib.o
CC build/openssl/library/ssl_x509.o
CC build/openssl/library/ssl_pkey.o
CC build/openssl/library/ssl_methods.o
CC build/openssl/library/ssl_cert.o
CC build/openssl/platform/ssl_port.o
CC build/openssl/platform/ssl_pm.o
AR build/openssl/libopenssl.a
CC build/pthread/pthread.o
CC build/pthread/pthread_cond_var.o
CC build/pthread/pthread_local_storage.o
AR build/pthread/libpthread.a
CC build/sdmmc/sdmmc_cmd.o
AR build/sdmmc/libsdmmc.a
CC build/soc/esp32/rtc_clk.o
CC build/soc/esp32/rtc_time.o
CC build/soc/esp32/rtc_sleep.o
CC build/soc/esp32/rtc_init.o
CC build/soc/esp32/soc_memory_layout.o
CC build/soc/esp32/cpu_util.o
CC build/soc/esp32/rtc_pm.o
AR build/soc/libsoc.a
CC build/spi_flash/flash_ops.o
CC build/spi_flash/cache_utils.o
CC build/spi_flash/spi_flash_rom_patch.o
CC build/spi_flash/partition.o
CC build/spi_flash/flash_mmap.o
AR build/spi_flash/libspi_flash.a
CC build/spiffs/esp_spiffs.o
CC build/spiffs/spiffs/src/spiffs_hydrogen.o
CC build/spiffs/spiffs/src/spiffs_check.o
CC build/spiffs/spiffs/src/spiffs_nucleus.o
CC build/spiffs/spiffs/src/spiffs_gc.o
CC build/spiffs/spiffs/src/spiffs_cache.o
AR build/spiffs/libspiffs.a
CC build/tcpip_adapter/tcpip_adapter_lwip.o
AR build/tcpip_adapter/libtcpip_adapter.a
CC build/ulp/ulp_macro.o
CC build/ulp/ulp.o
AR build/ulp/libulp.a
CC build/vfs/vfs.o
CC build/vfs/vfs_uart.o
AR build/vfs/libvfs.a
CXX build/wear_levelling/WL_Ext_Perf.o
CXX build/wear_levelling/Partition.o
CXX build/wear_levelling/SPI_Flash.o
CXX build/wear_levelling/WL_Ext_Safe.o
CXX build/wear_levelling/crc32.o
CXX build/wear_levelling/WL_Flash.o
CXX build/wear_levelling/wear_levelling.o
AR build/wear_levelling/libwear_levelling.a
CC build/wpa_supplicant/src/crypto/ms_funcs.o
CC build/wpa_supplicant/src/crypto/crypto_internal-cipher.o
CC build/wpa_supplicant/src/crypto/crypto_internal-modexp.o
CC build/wpa_supplicant/src/crypto/bignum.o
CC build/wpa_supplicant/src/crypto/sha1-pbkdf2.o
CC build/wpa_supplicant/src/crypto/aes-cbc.o
CC build/wpa_supplicant/src/crypto/md5.o
CC build/wpa_supplicant/src/crypto/rc4.o
CC build/wpa_supplicant/src/crypto/sha256.o
CC build/wpa_supplicant/src/crypto/dh_groups.o
CC build/wpa_supplicant/src/crypto/md4-internal.o
CC build/wpa_supplicant/src/crypto/sha1-internal.o
CC build/wpa_supplicant/src/crypto/aes-wrap.o
CC build/wpa_supplicant/src/crypto/crypto_internal.o
CC build/wpa_supplicant/src/crypto/dh_group5.o
CC build/wpa_supplicant/src/crypto/des-internal.o
CC build/wpa_supplicant/src/crypto/crypto_internal-rsa.o
CC build/wpa_supplicant/src/crypto/aes-unwrap.o
CC build/wpa_supplicant/src/crypto/aes-internal-dec.o
CC build/wpa_supplicant/src/crypto/sha1.o
CC build/wpa_supplicant/src/crypto/aes-internal.o
CC build/wpa_supplicant/src/crypto/md5-internal.o
CC build/wpa_supplicant/src/crypto/sha256-internal.o
CC build/wpa_supplicant/src/crypto/aes-internal-enc.o
CC build/wpa_supplicant/port/os_xtensa.o
CC build/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.o
CC build/wpa_supplicant/src/fast_crypto/fast_crypto_internal-modexp.o
CC build/wpa_supplicant/src/fast_crypto/fast_aes-unwrap.o
CC build/wpa_supplicant/src/fast_crypto/fast_sha256.o
CC build/wpa_supplicant/src/fast_crypto/fast_crypto_internal.o
CC build/wpa_supplicant/src/fast_crypto/fast_aes-cbc.o
CC build/wpa_supplicant/src/fast_crypto/fast_sha256-internal.o
CC build/wpa_supplicant/src/fast_crypto/fast_aes-wrap.o
AR build/wpa_supplicant/libwpa_supplicant.a
CC build/xtensa-debug-module/trax.o
CC build/xtensa-debug-module/eri.o
AR build/xtensa-debug-module/libxtensa-debug-module.a
LD build/hello-world.elf
esptool.py v2.1
Flashing binaries to serial port COM7 (app at offset 0x10000)...
esptool.py v2.1
Connecting........__
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0220
Compressed 19616 bytes to 11536...
Wrote 19616 bytes (11536 compressed) at 0x00001000 in 1.0 seconds (effective 153.4 kbit/s)...
Hash of data verified.
Compressed 144208 bytes to 72205...
Wrote 144208 bytes (72205 compressed) at 0x00010000 in 6.4 seconds (effective 180.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 82...
Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 1754.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...

Wei-Hsiung Huang@WHToshibaNB MINGW32 /home/ieuser/hello_world
$

Note, There is no need to press any button on the ESP32-DevKitC board while make flash uploads the firmware to the flash memory.

Monitor the execution of the program

To see if “hello_world” application is indeed running, type make monitor. This command is launching IDF Monitor application:

make monitor

Several lines below, after start up and diagnostic log, you should see “Hello world!” printed out by the application.


To exit monitor use shortcut Ctrl+c. To execute make flash and make monitor in one shoot type make flash monitor. Check section IDF Monitor for handy shortcuts and more details on using this application.

Reference:

ESP-IDF Programming Guide
https://esp-idf.readthedocs.io/en/latest/index.html

No comments:

Post a Comment