Eclipse offers a very good development environment with numerous features, however setting it correctly is sometimes frustrating. Once it is done, it make the workflow quite simple. So let's set it up and see how it goes!
The first thing that needs to be done is to set-up ESP-IDF and ensure that all the dependencies are taken care of. Check the detailed tutorial on setting up ESP-IDF to get that done.
The ESP-IDF is setup in such a way that you can develop your application without modifying the ESP-IDF files. The application can reside in a completely separate directory from the ESP-IDF files. This allows the ESP-IDF core files to be updated independently of the application. We will be configuring the same 01_hello_world example from the above tutorial.
Ensure that the tool-chain works from command line, before proceeding with this tutorial. In fact this tutorial uses the makefile setup from the previous tutorial to configure the tool-chain.
Contents
Download and Install Eclipse C/C++ IDE
To get started download the latest eclipse IDE for C/C++
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2
Create a New Project
All the images below have steps marked with numbers, please perform them in a series. To start with
- Select the project type as Empty Project
- Toolchains as Cross GCC
- Uncheck Use Default Location
- Enter the project Name as 01_hello_world
Setup Environment Variables
These variables are setup to tell eclipse where the tool-chain and the ESP-IDF core is located.
- Right Click on the Project Name.
- Select Properties.
To add the environment variables:
- Expand C/C++ Build and click on Environment
- Click on the Add Button as shown below. Also notice that the IDE picks up some variable from the make file
Add the 3 variables as shown in the table below:
Variable | Value | Description |
---|---|---|
V | 1 | Turns ON the verbose. The console shows a tons of messages that the build process outputs. You may turn it off later. It will be handy for troubleshooting. |
IDF_PATH | F:/esp32_bm/esp-idf | This is path on my computer, put the path where you've downloaded the ESP-IDF |
PATH | C:\msys32\usr\bin;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin | Delete the existing value and replace it with this value |
Setup Build Variables
- Click on C/C++ General
- Then Click on Preprocessor Include Paths
- Now tick the CDT Cross GCC Built-in Compiler Settings
- Add the value xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}
We do similar step for build parser output like so:
- Click on C/C++ General
- Then Click on Preprocessor Include Paths
- Now tick the CDT GCC Build Output Parser
- Add the value xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
Build/Compile the Project
Add finally we right click on the project and select Build Project
If everything we did has gone well so far, you'll see success. I messed up several times first to get it working and then while re-doing to capture the steps.
Wait, do do you see some yellow exclamations there! These are files and folders eclipse is not able to find. So let's resolve these dependencies in the next step.
Resolving Dependencies
- Click on C/C++ General this time, select Paths and Symbols, under the includes tab click on Add..
Now add the following paths one by one. You may include more of these if you're project uses more ESP-IDF components. In the next tutorial I will try and cover the structure of the ESP-IDF and a simple example.
${IDF_PATH}/components/esp32/include ${IDF_PATH}/components/newlib/include ${IDF_PATH}/components/freertos/include ${IDF_PATH}/components/nvs_flash/include ${IDF_PATH}/components/driver/include ${IDF_PATH}/components/log/include
Okay, now check the exclamations, they are gone!
Configure targets
Are we done yet? NO, no hardware setup is done unless we program/flash the target. So let us configure two targets. Once to make all and other to flash.
Right Click on the Project, click on Build Targets and select Create..
Finally its time to Flash the target. Ensure that the board is connected, and the correct com port is chosen from the menu
References
- ESP-IDF documentation.
- Kolban Video