Je viens de découvrir la vidéo ci-dessous qui présente un nouvel outil pour les ESP32 et 8266.
Il permet d'identifier le CPU, ses options, l'adresse MAC, la taille et le type de la Flash et de la PSRAM présentent sur la carte.
Il analyse la partition de la Flash (le chargement est un peu long, j'ai l'impression que la partition est chargée localement). On peut faire des backup des partitions et télécharger des fichiers. l'outil supporte SPIFFS, LittleFS and FATFS.
Et plein d'autres trucs.
Enfin bref c'est à voir.
L'URL de l'outil
Le dépot Github
EDIT: Je viens de trouver la vidéo de présentation par le concepteur
J'ai immédiatement essayé avec Brave-Linux.
Cela fonctionne très bien.
Le nombre d'informations disponibles sur la puce est assez pharamineux.
Quant aux informations délivrées, pour ma part, elles me posent surtout des questions.
Notamment en ce qui concerne la découpe de la mémoire : je connaissais SPIFFS (de nom) mais pas app0 et app1, m'étant toujours fié à ce que propose PIO par défaut.
J'ai compris pourquoi je ne voyais que 1,3 Mo de mémoire utilisable alors que la puce en possède 4.
J'espère que le site Ramdom Nerd Tutorials fera un article plus détaillé que le machin Youtube.
Ici un dépot Github avec des fichiers de partitions pour différentes architectures de cartes.
Avec PlateformIO, il suffit de placer le fichier .csv avec le partionnement que tu veux utiliser dans la racine de ton projet et d'ajouter dans l'environnement que tu définis dans plateformio.ini une ligne avec le nom du fichier de partitionnement, par exemple board_build.partitions = app3M_spiffs_9M_16MB.csv
Merci, mais pour faire simple, je n'y comprends rien.
J'avais déjà lu, la relecture n'a pas fait de miracle.
Ma préoccupation est basique : dans l'hypothèse où j'aurais besoin de plus de 1,3 Mo est-ce que je peux récupérer de la mémoire ailleurs et provenant de quel endroit.
On parle bien de la flash?
On peut changer l'allocation des différents blocs de la partition.
Il y a des modèles qui sont installés avec la package, tu les trouveras dans la répertoire /home/$USER/.platformio/packages/framework-arduinoespressif32/tools/partitions
Il y a pas mal de modèles de partitions avec des noms relativement explicites.
Déjà si tu ne fais pas de mise à jour OTA prendre des modèles dont le nom commence par noota ou no_ota, tu verras qu'il ny a qu'une partition app0 ce qui laisse de la place pour le système de fichiers.
Pour faire des fichiers personnalisés tu peux jouer sur la taille et l'adresse des partitions.
Il faut t'assurer que la somme de toutes les partitions ne dépasse pas la taille de flash.
il y a des partitions qui doivent être présentes nvs qui se trouve au début de la flash. et coredump qui se trouve à la fin.
entre les deux tu as la (ou les) partition(s) application et la (ou les) partition(s) système de fichier.
Il faut jouer avec les adresses d'offset et la taille des partitions pour faire entrer tout ça dans ta flash.
Ma préoccupation est basique : dans l'hypothèse où j'aurais besoin de plus de 1,3 Mo est-ce que je peux récupérer de la mémoire ailleurs et provenant de quel endroit.
en général , sans OTA avec un choix de carte ‘ESP32 Dev Module’, je sélectionne (dans la liste déroulante de l’iDE) le modèle HUGE APP
(pour les partitionnements personnalisés il faut être hyper méticuleux en ne pas oublier les contraintes d’alignement sur les secteurs de Flash (4kB) pour les adresses de début et de fin de chaque bloc, j’ai laissé tomber pour me rabattre sur ce qui est proposé…..*)
Au début des ESP32 j’avais noté cet outil qui a peut être un équivalent plus récent couvrant diverses tailles de Flash et diverses versions d’ESP32-x*
Bonjour
Il existe des outils pour générer des fichiers de partition. Un tel fichier est au format csv et contient la liste des partitions avec leur nom, leur taille, offset, etc.
Il y a un outil de génération en ligne ici :
Il faut en effet s'assurer que certaines contraintes d'alignement et de taille minimale sont respectées, je ne sais pas si cet outil le fait.
Celui-ci est graphique et bien fait mais semble assez complexe :
C'est la même personne qui a fait l'outil dont je parle au début.
L'utilisation de "Partition Builder" est plus simple si on fait charger d'un fichier existant.
On peut partir d'un .csv dans lequel les offset ne sont pas définis et retoucher l'allocation des différentes partitions pour optimiser la place occupée, il place alors les offset automatiquement.
Je vais tester ça dans un projet sur lequel je travaille actuellement.
J'ai "un peu" approfondi depuis hier soir, notamment avec le site jumeau "Partition Builder".
Le résultat final d'une redéfinition des partitions est un fichier csv, qui, a ce que j'ai compris, peut s'utiliser avec l'IDE arduino (comme montré sur l'exemple), et aussi avec platformio.
PIO : board_build.partitions = partitions_custom.csv
J'ai aussi regardé quelques ESP32-C3 déjà programmés ou vierges.
Pour les vierges il n'y a que la partition bootloader et la table de partition, rien d'autre.
Pour ceux qui ont déjà été programmés j'ai deux familles : probablement que les valeurs par défaut ne sont pas les mêmes avec l'IDE arduino et platformio.
La première programmation est bien particulière.
Merci @fdufnews d'avoir signalé ce site, il oblige à réfléchir, les microcontrôleurs modernes se sont vraiment complexifiés.
Dernier point :
Les vidéos d'explication sur les deux sites sont traduites en français par de l'IA.
Ne vous étonnez pas si Gogole traduit "ESPi thirty two" par "32 pesetas espagnol"