Module de contrôleur universel pour l'Internet des objets. Test FatFs
Dans cet article, je vais démontrer les projets de test de la bibliothèque FatFs portés sur le module K66BLEZ1. La bibliothèque open source FatFs est bien connue des programmeurs de microcontrôleurs et implémente la prise en charge du système de fichiers FAT32 sur les cartes SD et MMC. Une chose indispensable dans le développement des enregistreurs, contrôleurs logiques programmables, enregistreurs sonores, trackers, etc. Mais parfois, cela peut devenir un goulot d'étranglement dans les systèmes en temps réel.La présentation du module K66BLEZ1 a été lancée dans cet article:Module contrôleur universel pour l'Internet des objets. Respirer la vieL'article mentionne la suite logicielle (SDK) pour la famille de microcontrôleurs K66.En particulier, dans le SDK, vous pouvez trouver un exemple pour tester les FatFs. L'exemple est très simple et je l'ai donc modifié pour plus de praticité.Organisation de la sortie des informations de débogage.
Pour que l'exemple d'origine du SDK fonctionne sur la carte K66BLEZ1, vous n'avez pas besoin de le modifier. Mais il y a une chose, mais! Il n'y aura aucune sortie vers le terminal de débogage. Étant donné que la carte du module n'a pas de connecteur spécial pour la sortie de débogage avec l'interface RS232.Le débogage de module est conçu pour un travail serré via l'interface SWD et en utilisant la technologie RTT (Real Time Terminal) décrite dans cet article. Cependant, cette approche peut ne pas plaire aux propriétaires d'adaptateurs de débogage incompatibles avec J-Link. Par conséquent, je n'ai pas corrigé le code de sortie de débogage dans l'application, mais je l'ai redirigé vers UART4. Là encore, pour éviter le prototypage, j'ai profité de J-Link. Les signaux RX et TX du convertisseur de port COM virtuel UART <-> intégré sont émis vers cet adaptateur sur le connecteur SWD. Je les ai utilisés. Ainsi, le premier réglage est apparu sur la carte du module. Elle est représentée dans le schéma ci-dessous en rouge.
(Cliquez pour agrandir)i.e. sur la carte K66BLEZ1, soudez la connexion des signaux rouges du connecteur de débogage avec les signaux nécessaires provenant du microcontrôleur.
(Cliquer pour agrandir)Ci-dessous, un schéma de l'adaptateur du connecteur J-Link au connecteur de débogage de la carte K66BLEZ1 pour comprendre d'où proviennent les signaux de l'adaptateur.
(Cliquer pour agrandir)Organisation de projets.
IAR Embedded Workbench for ARM 7.40.7FatFs
SDK .
, SDK , .
UART
board.h.
sdcard_FatFs.c BOARD_BootClockRUN BOARD_BootClockHSRUN, ..
180 120 MHzLe projet se trouve ici, ledeuxième est basé sur le premier, mais avec des ajouts importants.Ce projet vous permet de tester la vitesse d'ouverture, de création, d'écriture, de lecture, de fermeture et de suppression de fichiers.Le projet est iciDescription du test
Nous compilons le projet dans IAR et programmons via l'adaptateur JTAG / SWD dans le microcontrôleur MK66FN2M0VLQ18 sur la carte.Après le démarrage du programme, un menu du type suivant s'affiche dans le terminal:
(Cliquez pour agrandir) Lemenu propose d'exécuter l'un des trois tests et la possibilité de modifier plusieurs paramètres de test.Le test numéro 1 écrit séquentiellement le nombre spécifié de fichiers avec la taille spécifiée. Des données aléatoires obtenues par la fonction rand sont enregistrées. Chaque enregistrement est accompagné d'une mesure des heures d'ouverture, d'enregistrement et de fermeture du dossier.Ensuite, les fichiers sont lus séquentiellement et leur contenu est vérifié, le temps d'ouverture, de lecture et de fermeture du fichier est également mesuré.Si l'indicateur Erase est défini, les fichiers sont ensuite supprimés et le temps nécessaire pour supprimer les fichiers est mesuré.Pour 3 groupes d'opérations: création de fichier, lecture inversée et suppression, les statistiques sont résumées.Voici à quoi ressemble la fenêtre de test d'écriture, de lecture, de suppression de 5 fichiers de taille 8192 baht.
(Cliquez pour agrandir) Lenombre de fichiers et leur taille peuvent être modifiés arbitrairement. Si les valeurs sont trop grandes, le programme affichera un message sur la mémoire insuffisante.Le test numéro 2 crée, écrit, lit, supprime un fichier d'une taille donnée et répète ce nombre de fois.Le nom du fichier change à chaque fois. Ici, le nombre d'entrées peut être très important. Le test vous permet de tester les cartes pour l'usure complète et en même temps voir une image de la dégradation des vitesses d'écriture et de lecture.Numéro d'essai 3crée un fichier et y écrit le nombre spécifié (valeur Files Cnt) fois les blocs de la taille spécifiée. Ensuite, la procédure est répétée pour un autre fichier. Ce scénario vous permet de tester le mode d'enregistrement continu typique des appareils d'enregistrement audio avec des changements de volume.Résultats
K66BLEZ1 FatFs .
8GB microSD
GOOD RAM SDU8GDMGR (10- )
32768 — 5.1 /
32768 — 11.8 /
32768 — 15.9 /
32768 — 16.2 /
1 100 .
, .
De plus, avec un grand nombre de fichiers, le temps d'ouverture des fichiers commence à influencer la vitesse globale, qui augmente de deux ordres de grandeur lorsque le nombre de fichiers passe de un à cent.La valeur pratique des tests est qu'ils vous permettent de trouver les options de formatage de carte optimales, les tailles de fichier optimales, ainsi que d'optimiser les tailles de bloc des fichiers enregistrés pour des performances maximales.Les mêmes tests aideront à voir et à évaluer les retards d'enregistrement sporadiques caractéristiques des cartes SD et MMC en relation avec le fonctionnement de leur mécanisme interne pour niveler l'usure des secteurs de la mémoire.Tous les matériaux liés à ce projet sont stockés ici - https://github.com/Indemsys/K66BLEZ1Source: https://habr.com/ru/post/fr392955/
All Articles