11 Comentários

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

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

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

Software » Configurando o ambiente Eclipse para o ESP32
Talvez você goste:
Comentários:

11
Deixe um comentário

avatar
5 Comentários
6 Respostas
0 Seguidores
 
Discussão de maior alcance
Discussão mais quente
8 Autores de comentários
Muriel CostaAlexandreClaudio KundeNathanJOSE CARLOS RAUPP Comentários recentes
  Notificações  
recentes antigos mais votados
Notificar
Claudio Kunde
Visitante
Claudio Kunde

No meu não consegue resolver os includes. Acho que vou acabar usando o jeito burro, incluindo no campo Path and Symbols. Não entendo porque ele não consegue resolver os links.

JOSE CARLOS RAUPP
Visitante
Jose Carlos

Boa tarde pessoal
Estou usando o kit da espressif ESP32-DevKitC-32D
Fiz os procedimentos acima e compilou OK aqui mas quando fui gravar deu mensagem que não comunica com o módulo.
A porta serial está com o numero correto!

A MENSAGEM DE ERRO FOI:

esptool.py v2.6
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____....._____

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
"python C:\msys32\esp\esp-idf/tools/windows/eclipse_make.py -j2 flash" terminated with exit code 2. Build might be incomplete.

12:49:15 Build Failed. 1 errors, 0 warnings. (took 26m:9s.362ms)

Nathan
Visitante
Nathan

Quando a linha Connecting aparecer, basta segurar o botão BOOT da sua placa, e ela vai gravar normalmente.
É um passo exigido pelo hardware do ESP-32, para a liberação da memória

Alexandre
Visitante
Alexandre

Conseguiu resolver seu problema?

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
Admin

Parabéns Muriel!

Séries

Menu