UTFS : le système de fichiers léger pour microcontrôleurs optimisé et facile d’utilisation

UTFS est un système de fichiers léger et sans allocation pour les appareils embarqués

Selon cnx-software, la société CLI Systems a lancé un système de stockage innovant intitulé UTFS (μTFS), spécifiquement conçu pour les microcontrôleurs à ressources limitées. Ce nouveau système de fichiers se distingue des approches traditionnelles comme FAT32 ou EXT4, ainsi que des options plus légères telles que LittleFS et SPIFFS, utilisées par exemple sur l’ESP32, en se voulant beaucoup plus simple et accessible. En n’intégrant pas de mémoire dynamique et en évitant les fonctions complexes comme le nivellement d’usure, UTFS facilite son adoption sur des appareils dotés de ressources limitées.

Mémoire plate et gestion simplifiée : 24 octets par fichier

UTFS est conçu pour fonctionner avec des mémoires plates, notamment l’EEPROM brute, les pages flash intégrées au processeur ou encore le flash SPI/I²C externe. Il permet aux micrologiciels d’écrire des données nommées (« fichiers ») de manière contiguë, chaque fichier étant associé à un en-tête fixe de 24 octets. Cet en-tête contient des informations essentielles telles que les identifiants, la taille et des signatures définies par l’application, ce qui garantit une gestion efficace des données.

Système de fichiers μTFS léger et sans allocation

Il existe plusieurs points forts d’UTFS. Par exemple, il présente une empreinte mémoire minimale grâce à l’utilisation de l’en-tête de 24 octets par fichier sans recourir à des allocations dynamiques (pas de malloc). De plus, il propose un format de disposition séquentielle inspiré de TAR, permettant même d’ajouter des fichiers ultérieurement sans perturber les configurations de mémoire déjà établies. Ce système est aussi indépendant du type de stockage, nécessitant seulement la mise en place de deux fonctions pour interagir avec le matériel. En ce qui concerne la fiabilité, UTFS utilise des signatures pour détecter la corruption ou l’initialisation manquante lors du chargement. Enfin, il est à souligner que le système est open source, sous licence MIT, garantissant une totale liberté vis-à-vis des formats propriétaires.

Comparaison entre UTFS et systèmes de fichiers complets : des solutions adaptées aux ressources limitées

Traditionnellement, de nombreux projets basés sur des microcontrôleurs stockent toutes les données dans une grande structure à une adresse EEPROM fixe. Bien que cela soit simple, cette méthode pose des problèmes lorsque le format des données évolue, rendant les anciennes données incompatibles. En revanche, des systèmes de fichiers complets comme FatFs ou LittleFS offrent des fonctionnalités avancées, mais nécessitent une mémoire plus importante et sont plus lourds pour les petits appareils.

UTFS ajuste automatiquement la position des données lorsque la taille des fichiers change
UTFS ajuste automatiquement la position des données lorsque la taille des fichiers change selon les révisions du micrologiciel (à gauche) et utilise une adresse de base personnalisée pour coexister avec les données héritées (à droite)

UTFS se présente donc comme une alternative entre ces choix. Il exclut des fonctionnalités complexes telles que le nivellement de l’usure et les écritures atomiques sécurisées. Cela signifie que lors d’une interruption de l’alimentation pendant une opération de sauvegarde, des données pourraient être partiellement écrites, similaire aux écritures pour EEPROM classiques. En revanche, UTFS simplifie le processus en stockant les données sous forme de blocs nommés distincts, facilitant ainsi la gestion et la mise à jour des informations sur des systèmes peu équipés.

Pour ceux qui souhaitent explorer davantage, CLI Systems propose des exemples pratiques adaptés à des cartes comme l’Arduino Uno (ATmega328) utilisant l’EEPROM intégrée, ainsi qu’à la Microchip SAMD20 avec sa mémoire flash intégrée. L’intégration d’UTFS sur d’autres matériels est également réalisable en connectant son API aux fonctions de lecture et d’écriture spécifiques de l’appareil. Le code source C99, accompagné d’exemples et d’une documentation complète, est disponible sur le dépôt GitHub de CLI Systems, facilitant ainsi l’intégration dans divers projets.

Programme UTFS Bonjour Monde
Programme UTFS « Hello World »

  • GALPADA Module de Reconnaissance D'empreintes Optique Microcontrôleur Intégré Noir Compatible pour Projets Industriels et Cartes de Développement pour Projets Industriels et Cartes de
  • NF-919 Compteur de puissance optique avec source lumineuse 6 longueurs d'onde Vfl Ref Sl Localisateur visuel défauts Mesure d'atténuation Centrale électrique de la gare