CONSEIL : Après Easyflash V4.1, le projet open source FlashDB nouvellement conçu et développé sur la base d'EasyFlash a été officiellement lancé. Il possède des fonctions nouvellement intégrées telles que la base de données de synchronisation, la gestion multi-partitions et plusieurs instances de base de données, ce qui a également amélioré les performances globales dans une certaine mesure. Bienvenue à suivre: https://github.com/armink/flashdb. Dans le même temps, l'Easyflash existant continuera d'être maintenu.
EasyFlash est une bibliothèque de mémoire flash embarquée légère open source, ce qui permet aux développeurs d'implémenter plus facilement le développement d'applications courantes en fonction de la mémoire flash. Il est très adapté à la maison intelligente, à la portable, à un contrôle industriel, à des soins médicaux, à l'Internet des objets et à d'autres produits qui nécessitent des fonctions de stockage d'énergie. Il a une utilisation des ressources extrêmement faible et prend en charge diverses mémoire MCU sur puce. Cette bibliothèque comprend principalement trois fonctions pratiques :
EasyFlash peut non seulement réaliser la fonction de stockage de mise à jour des informations telles que la définition des paramètres ou exécuter des journaux de produits, mais aussi encapsuler des méthodes simples pour ajouter, supprimer, modifier et interroger , réduisant la difficulté des développeurs dans le traitement des paramètres des produits et garantir une meilleure évolutivité du produit dans les mises à niveau ultérieures. Faites de Flash une petite base de données de stockage de valeurs de clé de clé qui transforme Flash en un modèle NOSQL (base de données non relationnelle).
Cette bibliothèque résume la fonction d'interface couramment utilisée de la fonction IAP (programmation en application), prend en charge la vérification CRC32 et prend en charge les mises à niveau de chargeur de démarrage et d'application.
Il est idéal pour les petits produits sans systèmes de fichiers, ce qui permet aux développeurs de localiser et de trouver rapidement rapidement les causes des accidents du système ou des accidents. Dans le même temps, il est utilisé avec EasyLogger (ma bibliothèque de journaux C ultra-légère open source, haute performance, qui fournit une interface transparente avec Easyflash), et implémente facilement la fonction de stockage flash des journaux C.
Actuellement, il existe deux modes principaux de fonction Env, l'un est le mode NG apporté à la v4.0, et l'autre est le mode hérité qui continue V3.0
Le fichier de code source correspondant est:
ef_env.c
Depuis le festival du printemps en 2019, Easyflash a finalement publié la version V4.0 après plus de 4 ans d'itération et combinée avec les besoins et les suggestions de nombreux développeurs. La fonction Env dans cette version est nommée NG (Next Generation) Mode. Il s'agit d'une nouvelle version entièrement refactorisée avec les nouvelles fonctionnalités suivantes:
V4.0 Conception et principes internes, guide de migration v4.0 et plus encore, veuillez continuer à lire la section de documentation suivante
Remarque : Certains flashs ne peuvent pas être écrits dans l'ordre inverse, tels que le flash STM32L4 sur puce, donc le mode NG ne peut pas être utilisé. Dans ce cas, il est recommandé d'utiliser le mode hérité de la v3.0.
Les fichiers de code source correspondant sont:
ef_env_legacy.cetef_env_legacy_wl.c
Le mode héritage a également des fonctions de protection contre l'équilibre et la mise sous tension. Par rapport au mode V 4,0 ng, l'utilisation du mode héritage nécessite un espace de RAM supplémentaire pour mettre temporairement en cache chaque Env, et enfin appeler l'interface de sauvegarde, effacer uniformément les secteurs, puis les stocker sur Flash.
| Mode v4.0 ng | V3.0 Mode hérité | |
|---|---|---|
| Utilisation des ressources RAM | Faible | haut |
| Prise en charge du flash complet | Un flash est restreint: par exemple, stm32l4 en puce | Plus complet |
| La collection GC Garbage est-elle requise? | GC est nécessaire, ce qui fait ralentir la vitesse d'écriture lorsque GC est déclenché | inutile |
| Limite de type de valeur | Illimité | Il prend en charge de meilleurs types de chaînes |
| Protection de mise en avant | soutien | soutien |
| Équilibre | soutien | soutien |
| Mise à niveau incrémentiel | soutien | soutien |
最低要求: ROM: 6K bytes RAM: 0.1K bytes
Actuellement, les plates-formes matérielles ont été transplantées incluent la série stm32f10x et stm32f4xx sur Chip Flash, et SPI Flash (basé sur SFUD), qui sont également les plates-formes utilisées par les produits de l'auteur. Le portage d'autres plates-formes n'est pas difficile. Au début de la conception du projet, les problèmes d'adaptabilité pour toutes les plateformes ont été pris en compte (sauf 64 bits), de sorte que toutes les interfaces de portage ont été réservées. Pour port, il vous suffit de modifier un fichier easyflashportef_port.c pour réaliser les fonctions d'effacement, d'écriture, de lecture et d'impression.
Bienvenue à Fork and Pull Demande (GitHub | Oschina | codage). Si vous pensez que ce projet open source est super, vous pouvez cliquer sur Star dans le coin supérieur droit de la page d'accueil du projet et le recommander à plus d'amis dans le besoin.
La figure suivante est une interface commune pour appeler des variables d'environnement via la console (terminal). Il démontre le processus suivant, qui prend tous en charge les appels directs par la couche d'application.
temp et attribuer une valeur de 123 ;456 et sauvegardez et redémarrez;
Le chiffre suivant montre le processus de mise à niveau des logiciels IAP via la console. Il utilise l'interface de fonction IAP qui est livrée avec la bibliothèque et la démonstration utilise le protocole de port série + ymodem. Vous pouvez également réaliser des mises à jour du réseau distant via CAN, 485, Ethernet et d'autres bus.

Le processus ci-dessous est de sortir le journal via la console et de stocker le journal de sortie en flash. Redémarrez et lisez le dernier journal enregistré, et enfin effacez enfin le journal flash.

docszhapi.mddocszhport.mddocszhv4_migrate.mddocszhdesign.mdAssurez-vous de l'utiliser après avoir lu le document .

Si EasyFlash résout votre problème, vous pourriez aussi bien scanner le code QR ci-dessus pour m'inviter à prendre une tasse de café ~
Utilisez le protocole open source du MIT. Veuillez lire le contenu du fichier de licence dans le projet pour plus de détails.
EasyFlash est une bibliothèque de mémoire flash embarquée légère open source. Il fournit une interface d'application pratique pour MCU (Micro Control Unit). Les développeurs peuvent obtenir un développement d'applications plus efficace et plus basé sur la mémoire flash. La bibliothèque fournit actuellement trois fonctionnalités utiles :
EasyFlash peut stocker les paramètres de réglage ou exécuter des journaux et d'autres informations que vous souhaitez conserver après l'alimentation. Il contient des méthodes d'ajout, de suppression, de modification et de requête. Il aide le développeur à traiter les paramètres du produit et à s'assurer que le produit a une meilleure évolutivité après la mise à niveau. Transforme le flash en un petit modèle NOSQL (bases de données non relationnelles) et une base de données de magasins de valeurs de clé.
La bibliothèque résume l'interface commune IAP (programmation de l'application dans l'application). Prise en charge de la somme de contrôle CRC32. Tout en prenant en charge le chargeur de démarrage et la mise à niveau de l'application.
Il est très adapté aux petits sans produits de système de fichiers. Le développeur peut facilement localiser et interroger le problème lorsque le système se bloque ou se fige. Vous pouvez utiliser EasyLogger (une bibliothèque de journaux C super-légers et haute performance qui est open source par moi. Il fournit une interface transparente avec Easyflash) en même temps. Il est donc si facile de stocker les journaux pour flasher.
Minimum : ROM: 6K bytes RAM: 0.2K bytes
La plate-forme matérielle a été portée SPI Flash, stm32f10x et stm32f4xx de flash sur puce. Ce sont mes plateformes de produits. La difficulté de portage de plate-forme restante est petite. Pour le port, modifiez simplement le fichier easyflashportef_port.c . Implémentez la fonctionnalité effacer, écrire, lire, imprimer.
Bienvenue à tout le monde à Fork and Pull Demande (GitHub | Oschina | codage). Si vous pensez que ce projet open source est génial. Vous pouvez appuyer sur l' étoile dans le coin supérieur droit de la page d'accueil du projet et le recommander à plus d'amis.
La figure ci-dessous montre une interface commune d'un envO est appelée par la console (terminal). Ces interfaces sont prises en charge par la couche d'application appelée.
temp et la valeur est 123 ;456 et économisez, redémarrez;
La figure ci-dessous montre le processus de mise à niveau des logiciels via la console par IAP. Il utilise cette bibliothèque est livrée avec une interface de fonction IAP. Il utilise un mode de protocole de port série + YMODEM. Vous pouvez également être réalisé via CAN, 485, Ethernet Bus to Online Upgrade.

La figure suivante est la sortie du processus de journal via la console. Les journaux sont enregistrés pour flash en temps réel. Ensuite, la carte est redémarrée et les journaux sont lus de Flash. En dernier, les journaux seront effacés.

Tous les documents sont dans le dossier docsen . Veuillez lire les documents avant de le porter et de l'utiliser.
En utilisant la licence Open Source MIT, veuillez lire le fichier de licence de projet.