Quando temos uma dúvida e sabemos pelo quê pesquisar é incrivel. Os problemas começam quando não sabemos exatamente o que estamos procurando, que conceitos nos faltam e a quem perguntar. Não estou me referenciando ao FAT no ESP32, mas de outro problema que estou enfrentando relacionado a um projeto. Bem, uma das tentativas em solucionar o problema implica em testar o sistema de arquivos FAT no ESP32 para ver se resolvo a questão. Daí a configuração do sistema de arquivos se tornou um problema primário. Por sorte, de fácil solução.
SPIFFS ou FAT no ESP32?
Normalmente deixo o SPIFFS por padrão, já até escrevi alguns artigos bem elaborados como esse, esse e esse, por exemplo. Dessa vez estou me deparando com um problema (que virará outro artigo quando solucionado) e desconfio que a troca do sistema de arquivos seja a solução. Enquanto eu não confirmar isso, não tenho argumentos suficientes para dizer qual o melhor, mas se for para poupar tempo, deixe o SPIFFS como padrão. De outro modo…
Tabela de partições do ESP32
Escrevi esse artigo exclusivamente sobre a tabela de partições do ESP, agora vamos apenas fazer uma modificação nela.
No Atom, não sei de onde ele pega a tabela de partições por padrão. O arquivo com a tabela padrão se chama default.csv. Em uma busca rápida, encontrei em meu Linux esse arquivo alocado em ~/Documents, que é o caminho padrão para as plataformas e projetos que utilizo.
Primeiro, copie o arquivo para dentro do diretório de projetos. No meu caso:
cd /home/djames/Documents/PlatformIO/Projects/serialBinaryTransfer cp /home/djames/Documents/Arduino/hardware/espressif/esp32/tools/partitions/partitions_custom.csv .
Agora edite o arquivo copiado. No final dele, apenas troque spiffs, data, spiffs por ffat, data, fat. Salve o arquivo.
Indicar a tabela de partições do ESP32 no PlatformIO
Quando criamos um projeto no PlatformIO, um arquivo chamado platformio.ini é criado no diretório do projeto. Esse arquivo pode receber diversos parâmetros, conforme pode ser visto na documentação. O que fiz foi simplesmente criar a seção env:custom_table, conforme pode ser visto no arquivo de configuração abaixo:
; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32doit-devkit-v1] platform = espressif32 board = esp32doit-devkit-v1 framework = arduino [env:custom_table] platform = espressif32 board = esp32doit-devkit-v1 framework = arduino board_build.partitions = partitions_custom.csv
Sketch – Como usar o sistema de arquivos FAT no ESP32
No sketch a coisa é bem simples. Como estou utilizando a API do Arduino para programar o ESP32 (não confundir API com IDE), tudo o que precisa ser feito é executar uma rotina para ter o sistema de arquivos disponível no sistema:
void setup() { Serial.begin(115200); if (!FFat.begin(true)){ Serial.println("Couldn't mount the filesystem."); } }
Passando o parâmetro true para a função begin, o sistema de arquivos será formatado antes do primeiro uso. É mais prático que chamar FFAT.format().
A utilização básica é a mesma que a fornecida pelo sistema de arquivos SPIFFS, baseie-se nas referências supracitadas para iniciar leitura e escrita no sistema de arquivos.
Agora retorno à luta e, assim que obtiver sucesso, escrevo o próximo artigo. Até a próxima!
Comments are closed, but trackbacks and pingbacks are open.