Universelles Steuerungsmodul für das Internet der Dinge. FatFs testen



In diesem Artikel werde ich Testprojekte der FatFs-Bibliothek demonstrieren, die auf das K66BLEZ1-Modul portiert sind. Die Open-Source-Bibliothek FatFs ist Mikrocontroller-Programmierern bekannt und implementiert die Unterstützung des FAT32-Dateisystems auf SD- und MMC-Karten. Eine unverzichtbare Sache bei der Entwicklung von Loggern, speicherprogrammierbaren Steuerungen, Tonaufzeichnungsgeräten, Trackern usw. Aber manchmal kann es zu einem Engpass in Echtzeitsystemen werden.


Die Einführung des K66BLEZ1-Moduls wurde in diesem Artikel gestartet:
Universal Controller Module für das Internet der Dinge. Leben atmen

Der Artikel erwähnte die Software Suite (SDK) für die K66-Familie von Mikrocontrollern.
Insbesondere im SDK finden Sie ein Beispiel zum Testen von FatFs. Das Beispiel ist sehr einfach und deshalb habe ich es für eine größere Praktikabilität modifiziert.

Organisation der Ausgabe von Debugging-Informationen.



Damit das ursprüngliche Beispiel aus dem SDK auf der K66BLEZ1-Karte funktioniert, müssen Sie keine Änderungen daran vornehmen. Aber es gibt eine Sache, aber! Es erfolgt keine Ausgabe an das Debug-Terminal. Da die Modulplatine keinen speziellen Anschluss für die Debug-Ausgabe mit der RS232-Schnittstelle hat.
Das Modul-Debugging wurde für ein straffes Arbeiten über die SWD-Schnittstelle und unter Verwendung der in diesem Artikel beschriebenen RTT- Technologie (Real Time Terminal) entwickelt. Dieser Ansatz spricht jedoch möglicherweise keine Besitzer von Debugging-Adaptern an, die nicht mit J-Link kompatibel sind. Daher habe ich den Debug-Ausgabecode in der Anwendung nicht korrigiert, sondern an UART4 umgeleitet. Auch hier habe ich J-Link genutzt, um Prototypen zu vermeiden. RX- und TX-Signale vom integrierten virtuellen COM-Port-Konverter UART <-> werden an diesen Adapter am SWD-Anschluss ausgegeben. Ich habe sie benutzt. Somit erschien die erste Abstimmung auf der Modulplatine. Es ist in der Abbildung unten in rot dargestellt.

(Zum Vergrößern anklicken)


d.h. Löten Sie auf der K66BLEZ1-Platine die Verbindung der roten Signale des Debugging-Anschlusses mit den erforderlichen Signalen, die vom Mikrocontroller kommen.

(Zum Vergrößern anklicken)


Unten sehen Sie ein Diagramm des Adapters vom J-Link-Anschluss zum Debug-Anschluss der K66BLEZ1-Karte, um zu verstehen, woher die Signale vom Adapter stammen.

(Zum Vergrößern anklicken)


Organisation von Projekten.


IAR Embedded Workbench for ARM 7.40.7
FatFs SDK .
, SDK , .

UART board.h.
sdcard_FatFs.c BOARD_BootClockRUN BOARD_BootClockHSRUN, .. 180 120 MHz
Das Projekt befindet sich hier. Das

zweite Projekt basiert auf dem ersten, enthält jedoch erhebliche Ergänzungen.
Mit diesem Projekt können Sie die Geschwindigkeit beim Öffnen, Erstellen, Schreiben, Lesen, Schließen und Löschen von Dateien testen.
Projekt ist da

Testbeschreibung


Wir kompilieren das Projekt in IAR und programmieren es über den JTAG / SWD-Adapter in den Mikrocontroller MK66FN2M0VLQ18 auf der Karte.
Nach dem Start des Programms wird im Terminal ein Menü des folgenden Typs angezeigt:

(Zum Vergrößern anklicken) Das


Menü bietet die Möglichkeit, einen von drei Tests auszuführen und mehrere Testparameter zu ändern.

Test Nummer 1 schreibt nacheinander die angegebene Anzahl von Dateien mit der angegebenen Größe. Zufällige Daten, die von der Rand-Funktion erhalten werden, werden aufgezeichnet. Jede Aufzeichnung wird von einer Messung der Öffnungs-, Aufzeichnungs- und Schließzeiten der Datei begleitet.
Anschließend werden die Dateien nacheinander gelesen und ihr Inhalt überprüft. Außerdem wird die Zeit zum Öffnen, Lesen und Schließen der Datei gemessen.
Wenn das Löschflag gesetzt ist, werden die Dateien gelöscht und die Zeit zum Löschen der Dateien gemessen.
Für 3 Gruppen von Vorgängen: Dateierstellung, umgekehrtes Lesen und Löschen werden Statistiken zusammengefasst.
So sieht das Fenster zum Testen des Schreibens, Lesens und Löschens von 5 Dateien der Größe 8192 Baht aus.

(Zum Vergrößern anklicken) Die


Anzahl der Dateien und ihre Größe können beliebig geändert werden. Wenn die Werte zu groß sind, zeigt das Programm eine Meldung über unzureichenden Speicher an.

Test Nummer 2 erstellt, schreibt, liest, löscht eine Datei einer bestimmten Größe und wiederholt diese Anzahl.
Der Name der Datei ändert sich jedes Mal. Hier kann die Anzahl der Einträge sehr groß sein. Mit dem Test können Sie die Karten auf vollständigen Verschleiß testen und gleichzeitig ein Bild der Verschlechterung der Schreib- und Lesegeschwindigkeit sehen.

Test Nummer 3Erstellt eine Datei und schreibt in sie die angegebene Anzahl (Dateien Cnt-Wert) mal Blöcke der angegebenen Größe. Dann wird der Vorgang für eine andere Datei wiederholt. In diesem Szenario können Sie den für Audioaufzeichnungsgeräte typischen kontinuierlichen Aufnahmemodus mit Lautstärkeänderungen testen.

Ergebnisse


K66BLEZ1 FatFs .

8GB microSD GOOD RAM SDU8GDMGR (10- )

32768 — 5.1 /
32768 — 11.8 /

32768 — 15.9 /
32768 — 16.2 /

1 100 .

, .
Bei einer großen Anzahl von Dateien beginnt die Öffnungszeit der Datei, die Gesamtgeschwindigkeit zu beeinflussen, die sich um zwei Größenordnungen erhöht, wenn sich die Anzahl der Dateien von eins auf einhundert ändert.

Der praktische Wert der Tests besteht darin, dass Sie die optimalen Kartenformatierungsoptionen und optimalen Dateigrößen finden sowie die Blockgrößen der aufgezeichneten Dateien für maximale Leistung optimieren können.
Dieselben Tests helfen dabei, sporadische Aufzeichnungsverzögerungen zu erkennen und zu bewerten, die für SD- und MMC-Karten im Zusammenhang mit der Funktionsweise ihres internen Mechanismus zum Ausgleich des Verschleißes von Speichersektoren charakteristisch sind.

Alle Materialien zu diesem Projekt werden hier gespeichert - https://github.com/Indemsys/K66BLEZ1

Source: https://habr.com/ru/post/de392955/


All Articles