ESP32 (3) – Eclipse

luca 15/12/2016 12

Nel precedente articolo, vi ho mostrato come installare il framework di sviluppo ufficiale (Espressif IoT Development Framework) e come utilizzarlo per compilare il primo esempio, Hello world.

Sebbene sia possibile sviluppare i propri programmi con un semplice editor di testo (su Windows consiglio sempre il programma opensource Notepad++), è sicuramente più semplice dotarsi di un IDE (Integrated Development Environment), ovvero un applicativo grafico che consente la scrittura del codice (spesso con funzioni di autocompletamento e evidenziazione di parole chiave ed errori), la sua compilazione e anche l’upload sulla scheda di sviluppo. Tra gli IDE disponibili, uno dei più famosi e utilizzati è senza dubbio Eclipse.

Installazione

L’installazione di Eclipse è molto semplice: colleghiamoci al sito ufficiale e scarichiamo la versione Eclipse IDE for C/C++ Developers per il nostro sistema operativo (come per l’articolo precedente, ho scelto di lavorare su Windows):

eclipse-01

Eclipse viene distribuito come archivio ZIP. Una volta terminato il download, estraiamo l’archivio in una cartella del nostro disco fisso. Per semplicità ho scelto di utilizzare la stessa cartella (home dell’utente) dove ho installato anche esp-idf:

eclipse-02

Lanciamo Eclipse con un doppio click su eclipse.exe. Al primo avvio ci verrà chiesto di specificare il percorso del nostro workspace (= la cartella dove sarano salvati i progetti). Ho scelto di creare il workspace all’interno della cartella principale dell’IDE:

eclipse-03

Configurazione progetto

Per poter sviluppare un progetto basato su esp-idf con Eclipse, è necessario effettuare alcune configurazioni. Per prima cosa dobbiamo importare il progetto all’interno dell’IDE. Per questo tutorial utilizziamo l’esempio 01_hello_world, in un prossimo tutorial vi mostrerò come preparare un progetto vuoto.

Selezioniamo File – Import, quindi utilizziamo il wizard Existing Code as Makefile project:

eclipse-04

Diamo un nome al progetto, selezioniamo la cartella di origine e accertiamoci che la toolchain da utilizzare sia Cross GCC:

eclipse-05

Una volta terminata l’importazione, apriamo le Proprietà del progetto:

eclipse-06

Per prima cosa spostiamoci in C/C++ Build – Environment. Aggiungiamo (pulsante Add…) due variabili:

  • nome V, valore 1
  • nome IDF_PATH, valore il percorso dove è installato esp-idf (NB: devo usare / invece che \)

Su Windows, inoltre, cambiamo la variabile PATH con il seguente valore (se msys32 è installato nel percorso standard):

C:\msys32\usr\bin;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin

eclipse-07

Sempre se siamo sotto Windows, spostiamoci su C/C++ Build, togliamo il flag a Use default… e inseriamo il seguente build command:

bash ${IDF_PATH}/tools/windows/eclipse_make.sh

eclipse-08

Spostiamoci infine su C/C++ General – Preprocessor Include Paths e apriamo il tab Providers.

Selezioniamo CDT Cross GCC Built-in Compiler Settings e inseriamo al posto di ${COMMAND} il comando xtensa-esp32-elf-gcc:

eclipse-09

Selezioniamo infine CDT GCC Build Output Parser e aggiungiamo xtensa-esp32-elf- a inizio comando:

eclipse-10

Siamo ora pronti per compilare il progetto:

eclipse-11

Dopo la compilazione è possibile che Eclipse evidenzi diversi warnings di tipo “unresolved inclusion”:

eclipse-12

Il problema si verifica solo sotto Windows ed è un bug noto che non pregiudica la compilazione. Può essere risolto aggiungendo manualmente le diverse cartelle include presenti in esp-idf/components nelle proprietà del progetto (C/C++ General – Paths and Symbols – GNU C):

eclipse-13

Flash

Possiamo configurare Eclipse anche per eseguire automaticamente il comando make flash per caricare il programma sviluppato sulla scheda.

Selezioniamo, dal pannello laterale destro, il tab Build Targets:

eclipse-14

Clicchiamo con il tasto destro sulla cartella del progetto, quindi selezioniamo New.

Inseriamo flash come target name, quindi confermiamo con Ok:

eclipse-15

Se ora facciamo click con il tasto destro sul nuovo comando creato, possiamo lanciare il processo di flash selezionando Build Target:

eclipse-16

Il tab Console nella parte bassa dell’IDE ci consente di vedere l’esito del processo di flash:

eclipse-17

12 Comments »

  1. Junhyuk Lee 12/08/2017 at 01:09 - Reply

    Hi, Luca!
    Thanks for good tutorials!
    I have learned many things about ESP32 from them.

    How do you debug ESP32 in Eclipse IDE or CLI?

  2. laudix 08/02/2018 at 15:37 - Reply

    Ciao Luca.
    Premetto che non sono molto ferrato su eclipse…
    Ho risolto i problemi degli include ma quando compilo (icona a forma di martello) continua a darmi questa segnalazione:
    15:31:34 **** Build of configuration Default for project hello_world ****
    bash C:/Dev-Tools/msys32/home/laudicin/esp/esp-idf/tools/windows/eclipse_make.sh flash
    eclipse_make.sh has been replaced with eclipse_make.py. Check the Windows Eclipse docs for the new command.
    This shell script will continue to work until the next major release.
    Traceback (most recent call last):
    File “C:/Dev-Tools/msys32/home/laudicin/esp/esp-idf/tools/windows/eclipse_make.py”, line 36, in
    main()
    File “C:/Dev-Tools/msys32/home/laudicin/esp/esp-idf/tools/windows/eclipse_make.py”, line 28, in main
    print(“Running make in ‘%s'” % check_path(os.getcwd()))
    File “C:/Dev-Tools/msys32/home/laudicin/esp/esp-idf/tools/windows/eclipse_make.py”, line 23, in check_path
    winpath = winpath.replace(“\\”, “/”) # make consistent with forward-slashes used elsewhere
    TypeError: a bytes-like object is required, not ‘str’

    e penso che la compilazione non sia andata a buon fine.
    Puoi darmi una mano a capire?

    Un saluto

  3. Sergio 19/03/2018 at 22:36 - Reply

    Ciao Luca
    ho appena vistato il tuo sito e complimenti per l’ottimo lavoro svolto. Da poco ho iniziato a provare ESP8266 01con comandi AT. Vorrei programmarlo con eclipse è un programma che non conosco. Volevo chiederti la configurazione che fai vedere te per ESP32 posso usarla anche per ESP8266 ? ho provato a cercare in rete ma è tutto un copia incolla e riesco solo a compilare con eclipse ma non a programmare il modulo.
    Grazie per la tua attenzione
    Sergio

    • luca 21/03/2018 at 09:51 - Reply

      ciao Sergio, purtroppo non ho mai provato con il chip esp8266. Hai già provato a seguire la guida ufficiale?

  4. Sergio 22/03/2018 at 23:22 - Reply

    Ciao grazie per la dritta. Alla fine ci sono riuscito anche grazie all’aiuto di un mio amico. Adesso incomincio i primi test. Certo che non è facile trovare guide solo per eclipse tutti quanti si buttano sull’ide di arduino. Grazie ancora per la tua disponibilità
    Sergio

  5. Serkan 07/04/2018 at 20:28 - Reply

    Hi Luca. Every time i create a new project,the settings disappear. Do i have to make those settings every new project?

    • luca 08/04/2018 at 13:06 - Reply

      hi, you can create an empty project and reuse it as a “template”

  6. Stefano 16/04/2018 at 08:29 - Reply

    Se il PC è in dominio il percorso dove c’è esp-idf è:
    C:\Users\NomeUtente.VostroDominio\AppData\Roaming\SPB_16.6

    Ciao

  7. Zekah 30/04/2018 at 16:50 - Reply

    Hi Luca, my doubt is, what’s the exact difference between notepad and Eclipse?..

    Can I develop programs with Notepad++?,

    I’ve been working with the tutorial steps for using eclipse with the esp32, but I always get heaps and heaps.. and at least a couple of red lines in the code sometimes.. e.g

    “portTICK_PERIOD_MS”, (in the hello world example)…

    but I just got surprised because I could flash the Hello world example, even with the red lines, this confuses to me… will I be able of developing a trusted program using eclipse even with the red lines?….

    how will I know is the program is well made?

    • luca 03/05/2018 at 13:29 - Reply

      Hi! Of course you can develop your programs with the editor you prefer (Notepad++…). With Eclipse you can run the compile process within the editor, check the syntax etc. It may happen that you get red lines (= Eclipse can’t recognize that method) but you’re still able to compile and run the program, this is because of Eclipse and the compiler are different. Your problem can be related to some symbols not addded to the Editor. If you’re under Windows, try also the official guide.

  8. Daniele 09/06/2018 at 12:12 - Reply

    Salve
    ho installato eclipse oxygen per C/C++ developers, assieme a MinGW, Gcc, Java jdk, quello che vorrei chiederle è se una volta effettuato il run As c/c++ application si può visualizzare l’output non solo sulla console in basso, ma anche su una console Windows tipo system32, come per esempio in Visual Studio, ed se sì, come posso fare a installare questa opzione in Eclipse..

    grazie per la sua attenzione e
    se non la disturbo attendo un suo cortese riscontro..
    buona giornatae buon lavoro
    Daniele

    • luca 10/06/2018 at 17:25 - Reply

      Salve Daniele, purtroppo non credo che Eclipse offra questa possibilità… attualmente sto utilizzando Platform.io che mi sembra ancora + intuitivo e completo… faccia una prova anche con questo IDE!

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi