Blog
Compilar ESP32: erros, flags e velocidade
Erros de compilação, toolchains sumidas, brigas de permissão com o Windows — builds de ESP32 falham de formas previsíveis, e as correções são curtas quando você sabe o que procurar. Respostas para as perguntas de compilação que realmente travam o pessoal.
Não consigo compilar a placa ESP32?
O pacote de placas é o culpado habitual: se Tools → Board não mostra nenhuma entrada ESP32, ou o build morre com ‘exec: gcc: No such file’ logo no começo, o core arduino-esp32 está faltando ou meio instalado. Reinstale pelo Boards Manager, reinicie a IDE e compile de novo. Um pacote corrompido está por trás da maioria dos relatos de “can’t compile”. O FAQ da Arduino IDE percorre a instalação em ordem.
Como compilar e enviar código C para o ESP32?
Use ESP-IDF ou PlatformIO — os dois compilam C puro. Com ESP-IDF: idf.py build e depois idf.py -p COM5 flash. Com PlatformIO: um platformio.ini com framework = espidf, e pio run -t upload faz os dois passos. Seu main.c vai na pasta main/ de qualquer forma.
Dá para construir um ESP32 do zero?
O chip em si, não — o ESP32 é um SoC feito em fábrica, com front-end de RF e necessidade de cristal de 40 MHz; ninguém monta isso à mão. O que você pode construir do zero é a placa em volta de um módulo puro: solde um módulo ESP32-WROOM numa PCB carrier com a área da antena livre, adicione um chip USB-serial e um regulador de 3,3V, e você construiu uma devkit.
Não consigo compilar no ESP32 — acesso negado?
“Access is denied” durante um build é coisa do Windows e significa que o compilador não consegue escrever na pasta do projeto. Antivírus travando o diretório de build, OneDrive sincronizando ele, ou um caminho sob Program Files — qualquer um dispara. Mova o projeto para C:dev ou outro caminho simples, exclua a pasta da varredura do AV e recompile. Na minha máquina o culpado era o OneDrive; tirar a pasta do modo offline resolveu em um minuto.
Quantas vezes dá para compilar o ESP32?
Compilar é só escrita em disco — milhares de builds não machucam o chip. O limite de resistência são os ciclos de apagamento do flash, uns 10.000 por setor, e só gravar conta contra ele. Uma placa gravada uma vez por dia aguenta 27 anos; compilar sem gravar é grátis para sempre.
Por que meu primeiro build é tão lento?
O primeiro build compila o SDK — espere 5–10 minutos; tudo depois disso é incremental. Escolha seu alvo uma vez (idf.py set-target) e não limpe por hábito. No Linux e no macOS, o ccache dá aceleração real.
A biblioteca BLE não compila?
Sketches de BLE falham geralmente porque a biblioteca foi feita para um core mais antigo — arduino-esp32 2.x e 3.x mudaram a API de BLE, e uma biblioteca presa numa quebra na outra. Prenda o core na versão que o README da biblioteca nomeia, ou atualize a biblioteca. A busca mais rápida para isso é “can’t compile esp32 dev board ble library” — é um aglomerado conhecido de mismatch de versão.
O que significam todas essas flags do compilador?
-Os otimiza por tamanho, o padrão do ESP32; -DARDUINO_ARCH_ESP32 é definida pelo core, não por você. Você quase nunca mexe em flags no Arduino. No PlatformIO, board_build_flags adiciona as suas; no ESP-IDF, as opções de compilação vivem no menuconfig em vez da linha de comando. O FAQ do PlatformIO tem a sintaxe das flags.
O firmware ESP AT dá para compilar para o ESP32 S3?
Sim — o ESP-AT suporta oficialmente o ESP32-S3 desde a v3.0, e você compila a partir do repositório esp-at como um projeto ESP-IDF normal. Você precisa de um módulo com flash de 4 MB ou mais; o USB nativo do S3 também abre a rota AT+USBSERIAL.
Dá para rodar Android no ESP32?
Não — o ESP32 é um microcontrolador, não um processador de aplicação; Android precisa de MMU e muito mais RAM. O que o pessoal que pesquisa “how to build android for esp32” normalmente quer é um app Android que conversa com a placa: um app companheiro via MQTT ou BLE, com o ESP32 rodando um sketch de servidor. Essa dupla é simples — veja o FAQ de gravação para o lado da placa.
Os projetos deste tópico rodam direto no simulador gratuito do sensbench: circuito pré-montado, firmware incluído, sem conta e sem instalação.