Tipp : Nach EasyFlash V4.1 wurde das neu gestaltete und entwickelte FlashDB -Open -Source -Projekt offiziell gestartet. Es verfügt über neu integrierte Funktionen wie Zeitablaufdatenbank, Multi-Partition-Management und mehrere Datenbankinstanzen, was auch die Gesamtleistung in gewissem Maße verbessert hat. Willkommen bei Follow: https://github.com/armink/flashdb. Gleichzeitig wird der vorhandene EasyFlash weiterhin beibehalten.
EasyFlash ist eine leichte Open -Source -Bibliothek für eingebettete Flash -Speicher, die es den Entwicklern erleichtert, eine gemeinsame Anwendungsentwicklung basierend auf dem Flash -Speicher zu implementieren. Es ist sehr geeignet für Smart Home, tragbare, industrielle Kontrolle, medizinische Versorgung, Internet der Dinge und andere Produkte, die Stromversorgungsfunktionen erfordern. Es hat einen extrem geringen Ressourcenverbrauch und unterstützt verschiedene MCU-On-Chip-Speicher. Diese Bibliothek enthält hauptsächlich drei praktische Funktionen :
EasyFlash kann nicht nur die Funktion der Power-Down-Speicher von Informationen wie das Festlegen von Parametern oder das Ausführen von Produktprotokollen von Produkten erkennen, sondern auch einfache Methoden zum Hinzufügen, Löschen, Ändern und Abfragen einschließen, wodurch die Schwierigkeit von Entwicklern bei der Verarbeitung von Produktparametern verringert und in späteren Upgrades eine bessere Skalierbarkeit des Produkts gewährleistet ist. Machen Sie Flash eine kleine Schlüsselwertdatenbank, die Flash in ein NoSQL-Modell (nicht-relationaler Datenbank) verwandelt.
Diese Bibliothek fasst die häufig verwendete Schnittstelle der IAP-Funktion (In-Application-Programmierung) zusammen, unterstützt die CRC32-Überprüfung und unterstützt Bootloader- und Anwendungs-Upgrades.
Es ist ideal für kleine Produkte ohne Dateisysteme und erleichtert den Entwicklern es, die Ursachen für Systemabfälle oder -Abstürze schnell zu lokalisieren und zu finden. Gleichzeitig wird es mit EasyLogger verwendet (meine Open-Source-Bibliothek mit Hochleistungs-C-Protokollbibliothek, die eine nahtlose Schnittstelle mit EasyFlash bietet) und implementiert die Flash-Speicherfunktion von C-Protokollen einfach.
Derzeit gibt es zwei Hauptmodi der Env -Funktion. Einer ist der NG -Modus, der auf V4.0 gebracht wurde, und der andere ist der Legacy -Modus, der V3.0 fortsetzt
Die entsprechende Quellcode -Datei lautet:
ef_env.c
Seit dem Spring Festival im Jahr 2019 hat EasyFlash nach mehr als 4 Jahren Iteration endlich die V4.0 -Version veröffentlicht und mit den Bedürfnissen und Vorschlägen vieler Entwickler kombiniert. Die Env -Funktion in dieser Version heißt NG (Next Generation) -Modus. Dies ist eine komplett refaktorierte neue Version mit den folgenden neuen Funktionen:
V4.0 Design- und intern
Hinweis : Einige Blitze können nicht in umgekehrter Reihenfolge geschrieben werden, wie z. B. STM32L4 On-Chip-Blitz, sodass der NG-Modus nicht verwendet werden kann. In diesem Fall wird empfohlen, den Legacy -Modus von V3.0 zu verwenden.
Die entsprechenden Quellcode -Dateien sind:
ef_env_legacy.cundef_env_legacy_wl.c
Der Legacy -Modus hat auch Verschleiß- und Power-Down-Schutzfunktionen. Im Vergleich zum V 4,0 -NG -Modus erfordert die Verwendung des Legacy -Modus einen zusätzlichen RAM -Speicherplatz, um jede Umgebung vorübergehend zu leiten, und rufen Sie schließlich die Speichernschnittstelle auf, löschen Sie die Sektoren einheitlich und speichern Sie sie dann auf Flash.
| V4.0 ng Modus | V3.0 Legacy -Modus | |
|---|---|---|
| Ressourcennutzung | Niedrig | hoch |
| Unterstützung von Flash umfassend | Einige Blitz sind eingeschränkt: zum Beispiel STM32L4-In-Chip | Umfassender |
| Ist die GC -Müllsammlung erforderlich? | GC ist erforderlich, wodurch die Schreibgeschwindigkeit verlangsamt, wenn GC ausgelöst wird | unnötig |
| Werttyplimit | Unbegrenzt | Es unterstützt bessere String -Typen |
| Schutzschutz | Unterstützung | Unterstützung |
| Verschleißbalance | Unterstützung | Unterstützung |
| Inkrementelles Upgrade | Unterstützung | Unterstützung |
最低要求: ROM: 6K bytes RAM: 0.1K bytes
Derzeit wurden die Hardware-Plattformen transplantiert, umfassen stm32f10x und stm32f4xx -Serie On-Chip-Flash und Off-Chip-SPI-Flash (basierend auf SFUD), die auch die Plattformen sind, die von den Produkten des Autors verwendet werden. Das Portieren anderer Plattformen ist nicht schwierig. Zu Beginn des Projektdesigns wurden Anpassungsfähigkeitsprobleme für alle Plattformen berücksichtigt (außer 64-Bit), sodass alle Portierungsschnittstellen reserviert wurden. Zum Port müssen Sie nur eine Datei easyflashportef_port.c ändern, um die Funktionen des Löschens, Schreibens, Lesens und Drucks zu verwirklichen.
Willkommen bei Fork and Pull Request (Github | Oschina | Codierung). Wenn Sie der Meinung sind, dass dieses Open -Source -Projekt großartig ist, können Sie in der oberen rechten Ecke der Projekt -Homepage auf Stern klicken und es mehr Freunden in Not empfehlen.
Die folgende Abbildung ist eine gemeinsame Schnittstelle zum Aufrufen von Umgebungsvariablen über die Konsole (Terminal). Es zeigt den folgenden Vorgang, der alle direkten Aufrufe der Anwendungsschicht unterstützen.
temp und weisen Sie einen Wert von 123 zu.456 und speichern und starten Sie sie neu;
Die folgende Abbildung zeigt den Prozess der Aktualisierung der IAP -Software über die Konsole. Es verwendet die IAP -Funktionsschnittstelle, die mit der Bibliothek geliefert wird, und die Demonstration verwendet das serielle Port + -Modem -Protokoll. Sie können auch Remote -Netzwerk -Updates über CAN, 485, Ethernet und andere Busse realisieren.

Der folgende Vorgang besteht darin, das Protokoll über die Konsole auszugeben und das Ausgangsprotokoll in Flash zu speichern. Starten Sie das letzte gespeicherte Protokoll neu und löschen Sie das Flash -Protokoll schließlich.

docszhapi.mddocszhport.mddocszhv4_migrate.mddocszhdesign.mdVerwenden Sie es unbedingt, nachdem Sie das Dokument gelesen haben .

Wenn EasyFlash Ihr Problem löst, können Sie den obigen QR -Code genauso gut scannen, um mich einzuladen , eine Tasse Kaffee zu trinken ~
Verwenden Sie das MIT Open Source -Protokoll. Bitte lesen Sie den Inhalt der Lizenzdatei im Projekt für Details.
EasyFlash ist eine leichte Open -Source -Bibliothek für eingebettete Flash -Speicher. Es bietet eine bequeme Anwendungsschnittstelle für MCU (Micro -Steuereinheit). Die Entwickler können eine effizientere und gemeinsame Anwendungsentwicklung basierend auf dem Flash -Speicher erzielen. Die Bibliothek bietet derzeit drei nützliche Funktionen :
EasyFlash kann Einstellparameter oder Ausführungsprotokolle und andere Informationen speichern, die Sie nach dem Stromverbrauch aufbewahren möchten. Es enthält Methoden hinzufügen, löschen, ändern und abfragen. Es hilft Entwickler, die Produktparameter zu verarbeiten und sicherzustellen, dass das Produkt nach dem Upgrade eine bessere Skalierbarkeit hat. Verwandelt den Blitz in ein kleines NoSQL-Modell (nicht-relationale Datenbanken) und die Schlüsselwerbungspeicherdatenbank.
Die Bibliothek verkauft die gemeinsame Schnittstelle zwischen IAP (In-Application-Programmierung). Unterstützung von CRC32 -Prüfsumme. Unterstützung des Bootloader- und Anwendungs -Upgrades.
Es ist sehr geeignet für kleine ohne Dateisystemprodukte. Der Entwickler kann problemlos Probleme finden und abfragen, wenn das System abstürzt oder einfriert. Sie können EasyLogger (eine Super-Light-Gewicht-Hochleistungs-C-Protokollbibliothek, die Open Source von mir, verwenden. Sie bietet gleichzeitig eine nahtlose Schnittstelle mit EasyFlash). Es ist also so einfach, die Protokolle zum Blinken zu speichern.
Minimum : ROM: 6K bytes RAM: 0.2K bytes
Die Hardware-Plattform wurde von SPI Flash, stm32f10x und stm32f4xx Serie von On-Chip-Flash-Serien portiert. Dies sind meine Produktplattformen. Die verbleibende Schwierigkeitsgrad der Plattformportierung ist gering. So ändern Sie es einfach easyflashportef_port.c -Datei. Implementieren Sie ERASE, Schreiben, Lesen, Druckfunktionen.
Begrüßen Sie alle, um eine Anfrage zu geben und zu ziehen (Github | Oschina | Codierung). Wenn Sie der Meinung sind, dass dieses Open -Source -Projekt fantastisch ist. Sie können den Stern in der oberen rechten Ecke der Projekt -Homepage drücken und weitere Freunde empfehlen.
Die folgende Abbildung zeigt, dass die gemeinsame Schnittstelle eines Env von der Konsole (Terminal) aufgerufen wird. Diese Schnittstellen werden von der aufgerufenen Anwendungsschicht unterstützt.
temp und Wert ist 123 ;456 und sparen Sie, starten Sie neu;
Die folgende Abbildung zeigt den Prozess der Upgrade von Software über die Konsole durch IAP. Diese Bibliothek wird mit der IAP -Funktionschnittstelle geliefert. Es verwendet einen seriellen Port + Ymodem -Protokollmodus. Sie können auch über CAN, 485, Ethernet -Bus zum Online -Upgrade erreicht werden.

Die folgende Abbildung ist die Ausgabe des Protokollprozesses über die Konsole. Die Protokolle werden in Echtzeit auf Flash gespeichert. Dann wird das Board neu gestartet und die Protokolle zurück werden von Flash zurückgelesen. Endlich werden Protokolle gelöscht.

Alle Dokumente befinden sich im Ordner docsen . Bitte lesen Sie die Dokumente, bevor Sie sie portieren und verwenden.
Unter Verwendung der MIT Open Source -Lizenz lesen Sie bitte die Projektlizenzdatei.