Using ESP32-DevKitC-32D-F with Amazon FreeRTOS and IoT Core

DandD wrote on September 23, 2019:

Hello,
We currently have a ESP32-DevKitC-32D-F board and are trying to use Amazon FreeRTOS to connect it to Amazon IoT Core. After following this guide https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html we have reached the “Flash and Run Amazon FreeRTOS” section but have run into a “CMake Error at CMakeLists.txt: 34 (message) Board is not supported: vendor.board” when trying to flash it.

We are trying to find out if we have to use a strict ESP32-DevKitC board or our board should work and we have made a mistake in our configurations.

Thanks for any help!

Gaurav-Aggarwal-AWS wrote on September 23, 2019:

Which OS are you using? I am able to use the following commands on Ubuntu 18.04:


git clone git@github.com:aws/amazon-freertos.git
cd amazon-freertos/
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B build
cd build/
make -j4
cd ..
sudo python ./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB0 -B build

Which version of ESP32 toolchain are you using? You can check that using the following command:


xtensa-esp32-elf-gcc --version

Also, would you please share the output of all the above commands (including cmake and make)?

Thanks.

DandD wrote on September 24, 2019:

Hi TianGang,

We have been successfully able to complete the build now but there is still a problem flashing (described below).

Here is the output after we run.

C:\Users\danie\esp\amazon-freertos>cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B your-build-directory
– The C compiler identification is GNU 5.2.0
– The CXX compiler identification is GNU 5.2.0
– The ASM compiler identification is GNU
– Found assembler: C:/Program Files/Espressif/ESP-IDF Tools/toolchain/bin/xtensa-esp32-elf-gcc.exe
– Found Git: C:/Program Files/Git/cmd/git.exe (found version “2.22.0.windows.1”)
– Checking Python dependencies…
Python requirements from C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/requirements.txt are satisfied.
– Building for target esp32
– Component names: soc log heap freertos vfs newlib driver tcpip_adapter xtensa-debug-module app_trace mbedtls micro-ecc bootloader_support spi_flash partition_table app_update ethernet nvs_flash pthread smartconfig_ack wpa_supplicant esp32 cxx amazon-freertos-common bootloader bt console esp_adc_cal esptool_py expat wear_levelling sdmmc fatfs nghttp nimble openssl spiffs ulp
– Component paths: C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/soc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/log;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/heap;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/freertos;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/vfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/newlib;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/driver;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/tcpip_adapter;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/xtensa-debug-module;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_trace;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/mbedtls;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/micro-ecc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader_support;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spi_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/partition_table;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_update;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/ethernet;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nvs_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/pthread;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/smartconfig_ack;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wpa_supplicant;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/cxx;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/amazon-freertos-common;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bt;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/console;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp_adc_cal;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esptool_py;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/expat;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wear_levelling;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/sdmmc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/fatfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nghttp;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nimble;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/openssl;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spiffs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/ulp
– IDF_VER: v3.1.5-105-g7313c836a5
– Initialising new submodule …/…/…/libraries/3rdparty/http-parser…
Submodule ‘http-parser’ (https://github.com/nodejs/http-parser.git) registered for path ‘…/…/…/libraries/3rdparty/http-parser’
Cloning into ‘C:/Users/danie/esp/amazon-freertos/libraries/3rdparty/http-parser’…
Submodule path ‘…/…/…/libraries/3rdparty/http-parser’: checked out ‘5c17dad400e45c5a442a63f250fff2638d144682’
– Initialising new submodule …/…/…/libraries/3rdparty/unity…
Submodule ‘unity’ (https://github.com/ThrowTheSwitch/Unity.git) registered for path ‘…/…/…/libraries/3rdparty/unity’
Cloning into ‘C:/Users/danie/esp/amazon-freertos/libraries/3rdparty/unity’…
Submodule path ‘…/…/…/libraries/3rdparty/unity’: checked out ‘2939c420ed9f2697bcb82c1b193bb48c4a8ad7a9’
– Project version: 201906.00_Major-877-g1fb5c979d
– Adding linker script C:/Users/danie/esp/amazon-freertos/your-build-directory/vendors/espressif/boards/esp32/esp-idf/esp32/esp32_out.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.common.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.peripherals.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.libgcc.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld
– Component libraries:
=========================Resolving dependencies==========================
module disabled: posix
reason: posix::mcu_port is not defined by vendor.
dependency path: posix->posix::mcu_port

====================Configuration for Amazon FreeRTOS====================
Version: 201908.00
Git version: 201906.00_Major-877-g1fb5c979d

Target microcontroller:
vendor: Espressif
board: ESP-WROVER-KIT
description: Development board produced by Espressif that has support for
LCD, MicroSD card, and USB JTAG interface. It comes in two
variants either with ESP-WROOM-32 or ESP32-WROVER module.
family: ESP32
data ram size: 520KB
program memory size: 4MB

Host platform:
OS: Windows-10.0.17763
Toolchain: xtensa-esp32
Toolchain path: C:/Program Files/Espressif/ESP-IDF Tools/toolchain
CMake generator: Ninja

Amazon FreeRTOS modules:
Modules to build: ble, ble_wifi_provisioning, common, crypto, defender,
dev_mode_key_provisioning, freertos_plus_tcp, greengrass,
https, kernel, mqtt, ota, pkcs11, pkcs11_implementation,
platform, secure_sockets, serializer, shadow, tls, wifi
Enabled by user: ble, ble_wifi_provisioning, defender, greengrass, https, mqtt,
ota, pkcs11, pkcs11_implementation, platform, secure_sockets,
shadow, wifi
Enabled by dependency: ble_hal, common, crypto, demo_base, dev_mode_key_provisioning,
freertos, freertos_plus_tcp, kernel, pkcs11_mbedtls,
secure_sockets_freertos_plus_tcp, serializer, tls, utils
3rdparty dependencies: http-parser, jsmn, mbedtls, pkcs11, tinycbor
Available demos: demo_ble, demo_ble_numeric_comparison, demo_defender,
demo_greengrass_connectivity, demo_https, demo_mqtt, demo_ota,
demo_shadow, demo_tcp, demo_wifi_provisioning
Available tests:

– Configuring done
– Generating done
– Build files have been written to: C:/Users/danie/esp/amazon-freertos/your-build-directory

We have now run ninja -> this worked
We have been able to erase the chip: ./vendors/espressif/esp-idf/tools/idf.py erase_flash -B build -> This worked

We are running into a problem when flashing the board. We have tried
“./vendors/espressif/esp-idf/tools/idf.py” flash -B build.

However we have received this error.

C:\Users\danie\esp\amazon-freertos>"./vendors/espressif/esp-idf/tools/idf.py" flash -B build
Setting IDF_PATH environment variable: C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf
Traceback (most recent call last):
File “C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf\tools\idf.py”, line 499, in
main()
File “C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf\tools\idf.py”, line 479, in main
execute_action(actions[0], actions[1:])
File “C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf\tools\idf.py”, line 463, in execute_action
execute_action(dep, remaining_actions)
File “C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf\tools\idf.py”, line 473, in execute_action
function(action, args)
File “C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf\tools\idf.py”, line 207, in build_target
generator_cmd = GENERATOR_CMDS[args.generator]
KeyError: ‘Visual Studio 16 2019’

Thank you for your time,
It is greatly appreciated

Tiangang-AWS wrote on September 24, 2019:

Hi,

If you’re running on Windows, you need to explicitly specify a “build generator” (a concept in CMake) because on Windows CMake defaults to Visual Studio IDE and its msvc compiler. This is documented in the “Build Amazon FreeRTOS on Windows” section in the getting started guide that you were following, https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html#build-and-run-example-espressif

Here’s the CMake command to run,

cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B your-build-directory

Note that there’s a -GNinja in the command. Let me know if this helps.

Thanks

DandD wrote on September 24, 2019:

Hi Gaurav,

We are using Windows 10 (Version 10.0.17763 Build 17763)
Here is the output when running the code you gave to us.

C:\Users\danie\esp>git clone https://github.com/aws/amazon-freertos.git
Cloning into ‘amazon-freertos’…
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 69417 (delta 2), reused 0 (delta 0), pack-reused 69411R
Receiving objects: 100% (69417/69417), 192.43 MiB | 13.64 MiB/s, done.
Resolving deltas: 100% (35315/35315), done.
Checking out files: 100% (13610/13610), done.

C:\Users\danie\esp>cd amazon-freertos

C:\Users\danie\esp\amazon-freertos>cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B build
– Building for: Visual Studio 16 2019
– The C compiler identification is MSVC 19.22.27905.0
– The CXX compiler identification is MSVC 19.22.27905.0
– The ASM compiler identification is GNU
– Found assembler: C:/Program Files/Espressif/ESP-IDF Tools/toolchain/bin/xtensa-esp32-elf-gcc.exe
– Found Git: C:/Program Files/Git/cmd/git.exe (found version “2.22.0.windows.1”)
– Checking Python dependencies…
Python requirements from C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/requirements.txt are satisfied.
– Building for target esp32
– Component names: soc log heap freertos vfs newlib driver tcpip_adapter xtensa-debug-module app_trace mbedtls micro-ecc bootloader_support spi_flash partition_table app_update ethernet nvs_flash pthread smartconfig_ack wpa_supplicant esp32 cxx amazon-freertos-common bootloader bt console esp_adc_cal esptool_py expat wear_levelling sdmmc fatfs nghttp nimble openssl spiffs ulp
– Component paths: C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/soc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/log;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/heap;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/freertos;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/vfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/newlib;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/driver;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/tcpip_adapter;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/xtensa-debug-module;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_trace;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/mbedtls;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/micro-ecc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader_support;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spi_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/partition_table;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_update;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/ethernet;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nvs_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/pthread;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/smartconfig_ack;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wpa_supplicant;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/cxx;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/amazon-freertos-common;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bt;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/console;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp_adc_cal;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esptool_py;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/expat;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wear_levelling;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/sdmmc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/fatfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nghttp;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nimble;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/openssl;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spiffs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/ulp
CMake Error at vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake:202 (message):
Internal error, toolchain has not been set correctly by project (or an
invalid CMakeCache.txt file has been generated somehow)
Call Stack (most recent call first):
vendors/espressif/esp-idf/CMakeLists.txt:68 (idf_verify_environment)

– Configuring incomplete, errors occurred!
See also “C:/Users/danie/esp/amazon-freertos/build/CMakeFiles/CMakeOutput.log”.

C:\Users\danie\esp\amazon-freertos>xtensa-esp32-elf-gcc --version
xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a5) 5.2.0
Copyright © 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thank you for your help!
It is greatly appreciated!

DandD wrote on September 25, 2019:

Hi Tiangang.

We have run the following command:
python ./vendors/espressif/esp-idf/tools/idf.py flash -B build -G Ninja

The board we are using is the:
https://www.digikey.ca/product-detail/en/espressif-systems/ESP32-DEVKITC-32D-F/1965-1003-ND/9693290

And we received the following error:

C:\Users\danie\esp\amazon-freertos>python ./vendors/espressif/esp-idf/tools/idf.py flash -B build -G Ninja
Setting IDF_PATH environment variable: C:\Users\danie\esp\amazon-freertos\vendors\espressif\esp-idf
Running cmake in directory C:\Users\danie\esp\amazon-freertos\build
Executing “cmake -G Ninja --warn-uninitialized C:\Users\danie\esp\amazon-freertos”…
Warn about uninitialized values.
– The C compiler identification is GNU 7.2.0
– The CXX compiler identification is GNU 7.2.0
– Check for working C compiler: C:/Program Files/Haskell Platform/8.6.5/mingw/bin/cc.exe
– Check for working C compiler: C:/Program Files/Haskell Platform/8.6.5/mingw/bin/cc.exe – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: C:/Program Files/Haskell Platform/8.6.5/mingw/bin/c++.exe
– Check for working CXX compiler: C:/Program Files/Haskell Platform/8.6.5/mingw/bin/c++.exe – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Found Git: C:/Program Files/Git/cmd/git.exe (found version “2.22.0.windows.1”)
CMake Warning (dev) at libraries/3rdparty/CMakeLists.txt:33 (if):
uninitialized variable ‘AFR_BOARD’
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at CMakeLists.txt:34 (message):
Board is not supported: vendor.board

– Configuring incomplete, errors occurred!
See also “C:/Users/danie/esp/amazon-freertos/build/CMakeFiles/CMakeOutput.log”.
cmake failed with exit code 1

This is the error we were initially getting. Please let us know your thoughts

Thank you for your time,
It is greatly appreciated.

Tiangang-AWS wrote on September 25, 2019:

From the last line in your output, looks like ESP-IDF is still using the visual studio generator somehow. Did you delete the build directory before you rerun the CMake command? If it’s still not working, you can also try explicitly appending the generator to idf.py,

python ./vendors/espressif/esp-idf/tools/idf.py flash -B build -G Ninja

To check all the available options from idf.py, run with --help,

python ./vendors/espressif/esp-idf/tools/idf.py --help

Tiangang-AWS wrote on September 26, 2019:

Hi,

Just noticed one thing from your previous reply, I think you’re using different “build directory” for build and flash (FYI, the build directory can be any directory on your file system, you pass that to CMake and let it generate the build files). For build, because you executed exactly same command I posted, it’s building the binaries in “your-build-directory” folder, however, when you try to run flash command, it’s looking for the binaries in the “build” folder.

So basically in the 2 commands below, “<build_dir>” needs to be the same,


cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B <build_dir>
python ./vendors/espressif/esp-idf/tools/idf.py flash -B <build_dir>

Make sure you execute the above command from a clean source tree, and the build directories matches.

DandD wrote on September 30, 2019:

Hello,

We started over with a new amazon-freertos download and believe its no longer using the visual studio generator now, however we are now running into an error when executing the ninja command.

danie@DESKTOP-61R283U /c/Users/danie/esp
$ dir
amazon-freertos esp-idf

danie@DESKTOP-61R283U /c/Users/danie/esp
$ cd amazon-freertos/

danie@DESKTOP-61R283U /c/Users/danie/esp/amazon-freertos
$ cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja
-S . -B test2
– The C compiler identification is GNU 8.2.0
– The CXX compiler identification is GNU 8.2.0
– The ASM compiler identification is GNU
– Found assembler: C:/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
– Found Git: C:/Program Files/Git/cmd/git.exe (found version “2.22.0.windows.1”)
– Checking Python dependencies…
Python requirements from C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/requirements.txt are satisfied.
– Building for target esp32
– Component names: soc log heap freertos vfs newlib driver tcpip_adapter xtensa-debug-module app_trace mbedtls micro-ecc bootloader_support spi_flash partition_table app_update ethernet nvs_flash pthread smartconfig_ack wpa_supplicant esp32 cxx amazon-freertos-common bootloader bt console esp_adc_cal esptool_py expat wear_levelling sdmmc fatfs nghttp nimble openssl spiffs ulp
– Component paths: C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/soc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/log;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/heap;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/freertos;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/vfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/newlib;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/driver;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/tcpip_adapter;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/xtensa-debug-module;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_trace;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/mbedtls;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/micro-ecc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader_support;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spi_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/partition_table;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/app_update;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/ethernet;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nvs_flash;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/pthread;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/smartconfig_ack;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wpa_supplicant;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/cxx;C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/amazon-freertos-common;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bootloader;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/bt;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/console;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp_adc_cal;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esptool_py;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/expat;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/wear_levelling;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/sdmmc;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/fatfs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nghttp;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/nimble;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/openssl;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/spiffs;C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/ulp
CMake Warning at vendors/espressif/esp-idf/tools/cmake/crosstool_version_check.cmake:8 (message):
Xtensa toolchain C:/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe version
8.2.0 is not the supported version 5.2.0. Check Getting Started
documentation or proceed at own risk.
Call Stack (most recent call first):
vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake:211 (gcc_version_check)
vendors/espressif/esp-idf/CMakeLists.txt:68 (idf_verify_environment)

CMake Warning at vendors/espressif/esp-idf/tools/cmake/crosstool_version_check.cmake:25 (message):
Xtensa toolchain C:/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe does not
appear to be built with crosstool-ng. Check Getting Started documentation
or proceed at own risk.
Call Stack (most recent call first):
vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake:212 (crosstool_version_check)
vendors/espressif/esp-idf/CMakeLists.txt:68 (idf_verify_environment)

– IDF_VER: v3.1.5-105-g7313c836a5
– Project version: 201906.00_Major-907-g71bd46167
– Adding linker script C:/Users/danie/esp/amazon-freertos/test2/esp-idf/esp32/esp32_out.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.common.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.peripherals.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.libgcc.ld
– Adding linker script C:/Users/danie/esp/amazon-freertos/vendors/espressif/esp-idf/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld
– Component libraries:
=========================Resolving dependencies==========================
module disabled: posix
reason: posix::mcu_port is not defined by vendor.
dependency path: posix->posix::mcu_port

====================Configuration for Amazon FreeRTOS====================
Version: 201908.00
Git version: 201906.00_Major-907-g71bd46167

Target microcontroller:
vendor: Espressif
board: ESP-WROVER-KIT
description: Development board produced by Espressif that has support for
LCD, MicroSD card, and USB JTAG interface. It comes in two
variants either with ESP-WROOM-32 or ESP32-WROVER module.
family: ESP32
data ram size: 520KB
program memory size: 4MB

Host platform:
OS: Windows-10.0.17763
Toolchain: xtensa-esp32
Toolchain path: C:/xtensa-esp32-elf
CMake generator: Ninja

Amazon FreeRTOS modules:
Modules to build: ble, ble_hal, ble_wifi_provisioning, common, crypto, defender,
dev_mode_key_provisioning, freertos_plus_tcp, greengrass,
https, kernel, mqtt, ota, pkcs11, pkcs11_implementation,
platform, secure_sockets, serializer, shadow, tls, wifi
Enabled by user: ble, ble_hal, ble_wifi_provisioning, defender, greengrass,
https, mqtt, ota, pkcs11, pkcs11_implementation, platform,
secure_sockets, shadow, wifi
Enabled by dependency: common, crypto, demo_base, dev_mode_key_provisioning,
freertos, freertos_plus_tcp, kernel, pkcs11_mbedtls,
secure_sockets_freertos_plus_tcp, serializer, tls, utils
3rdparty dependencies: http_parser, jsmn, mbedtls, pkcs11, tinycbor
Available demos: demo_ble, demo_ble_numeric_comparison, demo_defender,
demo_greengrass_connectivity, demo_https, demo_mqtt, demo_ota,
demo_shadow, demo_tcp, demo_wifi_provisioning
Available tests:

– Configuring done
– Generating done
– Build files have been written to: C:/Users/danie/esp/amazon-freertos/test2

danie@DESKTOP-61R283U /c/Users/danie/esp/amazon-freertos
$ cd test2

danie@DESKTOP-61R283U /c/Users/danie/esp/amazon-freertos/test2
$ ninja
[0/2] Re-checking globbed directories…
[23/727] Building C object CMakeFiles/af…/src/aws_dev_mode_key_provisioning.c.obj
…/demos/dev_mode_key_provisioning/src/aws_dev_mode_key_provisioning.c: In function ‘prvProvisionPrivateECKey’:
…/demos/dev_mode_key_provisioning/src/aws_dev_mode_key_provisioning.c:124:9: warning: variable ‘lMbedResult’ set but not used [-Wunused-but-set-variable]
int lMbedResult = 0;
^~~~~~~~~~~
[26/727] Building C object CMakeFiles/af…c/json/iot_serializer_json_encoder.c.obj
FAILED: CMakeFiles/afr_serializer.dir/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c.obj
C:\xtensa-esp32-elf\bin\xtensa-esp32-elf-gcc.exe -DESP_PLATFORM -DGCC_NOT_5_2_0=1 -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE=“C:/Users/danie/esp/amazon-freertos/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/mbedtls/port/include/mbedtls/esp_config.h” -I…/libraries/c_sdk/standard/serializer/include -I…/freertos_kernel/include -I…/vendors/espressif/esp-idf/components/app_update/include -I…/vendors/espressif/esp-idf/components/bootloader_support/include -I…/vendors/espressif/esp-idf/components/esp32/include -I…/vendors/espressif/esp-idf/components/driver/include -I…/vendors/espressif/esp-idf/components/heap/include -I…/vendors/espressif/esp-idf/components/log/include -I…/vendors/espressif/esp-idf/components/nvs_flash/include -I…/vendors/espressif/esp-idf/components/pthread/include -I…/vendors/espressif/esp-idf/components/newlib/include -I…/vendors/espressif/esp-idf/components/soc/esp32/include -I…/vendors/espressif/esp-idf/components/soc/include -I…/vendors/espressif/esp-idf/components/spi_flash/include -I…/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/freertos/include -I…/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/ethernet/include -I…/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/mbedtls/port/include -I…/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/smartconfig_ack/include -I…/vendors/espressif/boards/esp32/aws_demos/application_code/espressif_code/tcpip_adapter/include -I…/libraries/freertos_plus/standard/freertos_plus_tcp/source/portable/Compiler/GCC -I…/freertos_kernel/portable/ThirdParty/GCC/Xtensa_ESP32/include -I…/demos/include -I…/vendors/espressif/boards/esp32/aws_demos/config_files -Iconfig -I…/libraries/c_sdk/standard/common/include -I…/libraries/abstractions/platform/include -I…/libraries/abstractions/platform/freertos/include -I…/libraries/abstractions/secure_sockets/include -I…/libraries/c_sdk/standard/common/include/private -I…/libraries/3rdparty/tinycbor -I…/libraries/3rdparty/mbedtls/include -I…/libraries/3rdparty/mbedtls/include/mbedtls -I…/libraries/abstractions/pkcs11/mbedtls -mlongcalls -mlongcalls -Og -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -nostdlib -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -std=gnu99 -Wno-old-style-declaration -Wno-maybe-uninitialized -MD -MT CMakeFiles/afr_serializer.dir/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c.obj -MF CMakeFiles\afr_serializer.dir\libraries\c_sdk\standard\serializer\src\json\iot_serializer_json_encoder.c.obj.d -o CMakeFiles/afr_serializer.dir/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c.obj -c …/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c
…/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c: In function ‘_appendData’:
…/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c:465:13: error: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Werror=stringop-truncation]
strncpy( ( char * ) _jsonContainerPointer( pContainer ), _JSON_NULL_VALUE, _JSON_NULL_VALUE_LENGTH );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
…/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c: In function ‘_appendBoolean’:
…/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c:417:9: error: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Werror=stringop-truncation]
strncpy( ( char * ) _jsonContainerPointer( pContainer ), _JSON_BOOL_TRUE, _JSON_BOOL_TRUE_LENGTH );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
…/libraries/c_sdk/standard/serializer/src/json/iot_serializer_json_encoder.c:422:9: error: ‘strncpy’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Werror=stringop-truncation]
strncpy( ( char * ) _jsonContainerPointer( pContainer ), _JSON_BOOL_FALSE, _JSON_BOOL_FALSE_LENGTH );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1.exe: some warnings being treated as errors
[31/727] Building C object CMakeFiles/af…or/iot_serializer_tinycbor_encoder.c.obj
ninja: build stopped: subcommand failed.

We have spent the weekend trying to find a solution to this error but have had no luck so far.

Thanks for the help.

Tiangang-AWS wrote on September 30, 2019:

Hi,

You’re using the xtensa-esp32-elf-gcc version 8.2, it’s not supported as of now,


CMake Warning at vendors/espressif/esp-idf/tools/cmake/crosstool_version_check.cmake:8 (message):
  Xtensa toolchain C:/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe version
  8.2.0 is not the supported version 5.2.0.  Check Getting Started
  documentation or proceed at own risk.
Call Stack (most recent call first):
  vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake:211 (gcc_version_check)
  vendors/espressif/esp-idf/CMakeLists.txt:68 (idf_verify_environment)

Please check the “Set Up Your Development Environment” section in our getting started doc, https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html#setup-env-esspressif. The toolchain link as documented in the doc should be https://docs.espressif.com/projects/esp-idf/en/v3.1.5/get-started-cmake/windows-setup.html

DandD wrote on September 30, 2019:

Hi All,

This seemed to be the fix to our problem.

We are now able to build, erase, and flash!

Thank you for all your help!

It was greatly appreciated!!

vlad-hid wrote on October 11, 2019:

Hi all,
I’m starting with Amazon FreeRTOS and ESP32. Recently I built and ran demo successfully for DevKitC board. But I got a small question.
I see Gaurav-Aggarwal-AWS provided short summary of build steps here and it causes the same question for me. It contains line:

cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=...

but the board in topic is DevKitC, not WROOVER and cmake have separate DBOARD parameter value “esp32_devkitc”.
So, the question: is it correct to use -DBOARD=esp32_wrover_kit for ESP32 DevKitC board? Or should we use -DBOARD=esp32_devkitc instead?

SarenaAtAws wrote on October 12, 2019:

Hey vlad-hid,

For the cmake generation command you can use either esp32_devkitc or esp32_wrover_kit, they both map to the same code.