Configurando o ambiente Eclipse para o ESP32

Introdução

 

O Eclipse é uma IDE de código aberto muito completa e querida entre desenvolvedores, além de muito flexível permitindo diversos tipos de personalizações. Neste artigo mostro como usá-la para criar um ambiente de desenvolvimento para o ESP32, de forma que dispense a linha de comando para compilar e gravar o projeto. Faremos tudo graficamente.

 

É importante salientar que este post não cobre a parte da configuração do ESP IDF, portanto, você já deve ter o ambiente configurado para dar prosseguimento. Você pode ver como configurar o ESP IDF neste artigo do Gabriel Almeida. Vale lembrar também que este artigo se passa em um ambiente Windows em minha máquina e talvez alguns passos não se apliquem para usuários Linux

 

Download e instalação do Eclipse

 

Primeiramente você deve fazer o download da ferramenta no site oficial. Na janela que irá abrir você deve escolher a instalação do "Eclipse IDE for C/C++ Developers", conforme a figura abaixo.

 

Download do Eclipse.
Figura 1: Instalando o eclipse

 

Após escolher o pacote, os próximos passos serão escolher o diretório de instalação e aguardar a conclusão. Caso você tenha dúvida na instalação da ferramenta, você pode conferir o guia de instalação oficial.

 

Importando e configurando o projeto

 

Agora é hora de portar um projeto para o Eclipse! Cuidado ao seguir os passos deste tutorial ao pé da letra, já que pode haver algumas pequenas divergências entre o seu ambiente e a minha instalação e pasta de projetos.

 

Reconhecendo a estrutura da pasta de projeto

 

Navegue até a pasta msys32 e entre na pasta que você criou para alocar a pasta esp-idf. No meu caso é a pasta ESP32 e é nela que também fica as pastas dos meus projetos.

 

Estrutura da pasta de projetos
Figura 2: Estrutura da pasta de projetos

 

Agora é hora de criar um novo projeto, vamos importar um exemplo de projeto "hello world" localizado na pasta esp-idf. Entre na pasta esp-idf -> examples -> get-started. Na pasta "get-started" você encontrará uma pasta com o nome "hello_world", copie-a na pasta "ESP32" (sua pasta de projetos) ao lado da pasta esp-idf.

 

O resultado deve ficar como na figura abaixo.

 

Projeto "hello_world" colado na pasta de projetos
Figura 3: Projeto "hello_world" colado na pasta de projetos

 

Vamos iniciar o eclipse para dar início à importação e configuração do nosso projeto! Abra o eclipse e na barra superior clique em file -> import. Obs: Se na inicialização ele pedir pra selecionar um endereço padrão para projetos, selecione a pasta ESP32.

 

Importando projeto
Figura 4: Importando projeto.

 

Na janela de importação selecione C/C++ -> Existing Code as Makefile Project.

 

Parâmetros para importação do projeto
Figura 5: Parâmetros para importação do projeto.

 

No campo Project Name coloque o nome do seu projeto. No nosso caso, como importamos o hello World, vou mantê-lo. Em Existing Code Location precisamos apontar o endereço onde está o nosso projeto, este diretório deve ser o que contém o arquivo Makefile do nosso projeto.

 

Selecione a Toolchain Cross GCC e clique em Finish.

 

Nomeando projeto e escolhendo Toolchain
Figura 6: Nomeando projeto e escolhendo Toolchain.

 

Bom, nosso projeto já está no eclipse e o resultado deve ser como a figura abaixo. Agora a gente precisa configurá-lo, vamos lá!

 

Aparência do eclipse com o projeto aberto
Figura 7: Aparência do eclipse com o projeto aberto

 

O seu projeto fica aberto no campo do Project explorer, clique nele com o botão direito e clique em propriedades.

 

Acessando menu de configuração do projeto
Figura 8: Acessando menu de configuração do projeto.

 

  • Clique em C/C++ Build -> Enviroment e na janela vamos adicionar algumas variáveis e modificar outra.
  • Clique em Add e preencha o campo name com "BATCH_BUILD" e valor 1.
  • Clique em Add novamente e preencha o campo name com "IDF_PATH" e o valor deve ser o caminho da pasta esp-idf, no meu caso o valor é "C:\msys32\ESP32\esp-idf".
  • Clique duas vezes na variável "PATH" para editá-la, no campo value, adicione ao final os seguintes valores ;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin . Atenção: não é para apagar o campo value do PATH, é apenas para acrescentá-la ao final.

 

Alterando variáveis do ambiente - Eclipse para o ESP32
Figura 9: Alterando variáveis do ambiente.

 

Clique em C/C++ Build e na aba Builder Setings desmarque a opção "use default build command", coloque o seguinte valor no campo Build command: python ${IDF_PATH}/tools/windows/eclipse_make.py

 

Alterando o comando de build
Figura 10: Alterando o comando de build.

 

Na aba Behavior habilite o campo Enable parallel build para dar mais velocidade ao processo de build.

 

Habilitando paralelismo
Figura 11: Habilitando paralelismo.

 

Vá para "C/C++ General -> Preprocessor Include Paths, Macros...". Na aba Providers selecione CDT Cross GCC Built-in Compiler Settings e mude o “Command to get compiler specs” para xtensa-esp32-elf-gcc ${FLAGS} -std=c++11 -E -P -v -dD "${INPUTS}".

 

Modificando "Command to get compiler specs"
Figura 12: Modificando "Command to get compiler specs".

 

Agora selecione o “CDT GCC Build Output Parser" e mude o “Compiler command pattern” para xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)

 

Modificando "Compiler command pattern"
Figura 13: Modificando "Compiler command pattern".

 

Vá para C/C++ General -> Indexer, habilite o campo "Enable project specific settings" e desabilite o campo "Allow heuristic resolution of includes".

 

Configurando indexer
Figura 14: Configurando indexer.

 

Tudo certo com as propriedades do nosso projeto, agora vamos clicar em "Apply and Close". Agora é hora de adicionar os build targets, usaremos eles para build, flash e rebuild.

 

Com o botão direito na pasta do projeto clique em "Build Targets -> Create...".

 

Criando targets
Figura 15: Criando targets.

 

No campo Target name preencha com "all" e pressione OK. Repita novamente o processo para os seguintes nomes: "clean" e "flash".

 

Criando target
Figura 16: Criando target.

 

O resultado esperado deve ser como na figura abaixo.

 

Lista de targets
Figura 17: Lista de targets.

 

Vamos na pasta raiz da instalação do ambiente ESP IDF, a pasta msys32 e execute o aplicativo mingw32. Agora use o comando cd para adentrar no diretório da nossa pasta do projeto:

 

Execute o comando:

 

Acessando MENUCONFIG através do mingw32
Figura 18: Acessando MENUCONFIG através do mingw32.

 

O resultado deve ser como na figura abaixo. Use o menu de navegação para ir até o serial flasher config.

 

Acessando menu de configuração serial
Figura 19: Acessando menu de configuração serial.

 

Preencha o campo default serial port com a porta em que está o seu dispositivo ESP32, no meu caso é a COM5. Salve e saia do menu.

 

Configurando porta serial do ESP32
Figura 20: Configurando porta serial do ESP32.

 

Volte para o eclipse e nos build targets que criamos, clique em all duas vezes. A primeira execução pode demorar um pouco, mas em breve seu projeto estará compilado! Note que os erros que antes apareciam no main.c agora sumiram.

 

Para gravar o código na placa, clique no flash duas vezes.

 

Projeto compilado sem erros
Figura 21: Projeto compilado sem erros.

 

Resolvendo possíveis erros na hora de compilar no eclipse:

 

Talvez você tenha tido o seguinte problema na hora de compilar:

 

File "C:/msys32/sdk/esp-idf/components/esptool_py/esptool/esptool.py", line 24, inimport serialImportError: No module named serialmake[1]: *** [/sdk/esp-idf/components/esptool_py/Makefile.projbuild:49: /sdk/esp-idf/myexamples-01092016/02_blink/build/bootloader/bootloader.bin] Error 1make: *** [/sdk/esp-idf/components/bootloader/Makefile.projbuild:31: /sdk/esp-idf/myexamples-01092016/02_blink/build/bootloader/bootloader.bin] Error 2

 

Isto pode estar relacionado à sua versão do python instalada ou a forma como ele é chamado. Uma solução que resolveu no meu caso foi alterar o nome do interpretador python de python para python2.

 

Modificando nome de chamada do interpretador python
Figura 23: Modificando nome de chamada do interpretador python.

 

 

Nome de chamada do interpretador python modificado
Figura 24: Nome de chamada do interpretador python modificado.

 

Bom, é isto galera! Espero que tenham gostado. Qualquer dúvida estou disponível, seu feedback é muito importante para mim.

 

Referências

 

https://github.com/espressif/esptool/issues/171

https://docs.espressif.com/projects/esp-idf/en/latest/get-started/eclipse-setup.html

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Muriel Costa
Técnico em mecatrônica, Graduando em Engenharia da informação pela Federal do ABC. Entusiasta da área, adoro frequentar espaços colaborativos e estar engajado com a comunidade. Em minhas escassas horas vagas gosto de organizar meu laboratório, desenvolver projetos, assistir séries e apreciar um bom churrasco.

4
Deixe um comentário

avatar
 
3 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Leonardo CadoriniMarcosMuriel CostaFábio Souza Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Leonardo Cadorini
Visitante
Leonardo Cadorini

Quanto tempo levou para compilar seu projeto ? aqui demorou muito!!
Já sabe como configurar o eclipse para Esp32 utilizando o cmake?

Marcos
Visitante
Marcos

Muito bom. Me ajudou bastante! Parabéns. Abs

Fábio Souza
Visitante

Parabéns Muriel!