Consejo : Después de EasyFlash V4.1, el proyecto FlashDB Open Source recientemente diseñado y desarrollado en base a EasyFlash se ha lanzado oficialmente. Tiene funciones recientemente integradas, como la base de datos de tiempo, la gestión de múltiples partes e instancias de múltiples bases de datos, lo que también ha mejorado el rendimiento general en cierta medida. Bienvenido a seguir: https://github.com/armink/flashdb. Al mismo tiempo, el EasyFlash existente continuará siendo manteniéndose.
Easyflash es una biblioteca de memoria flash integrada de código abierto, lo que facilita a los desarrolladores implementar el desarrollo de aplicaciones comunes en función de la memoria flash. Es muy adecuado para el hogar inteligente, portátil, control industrial, atención médica, Internet de las cosas y otros productos que requieren funciones de almacenamiento de encendido. Tiene un uso de recursos extremadamente bajo y admite varias memoria MCU en chip. Esta biblioteca incluye principalmente tres funciones prácticas :
EasyFlash no solo puede darse cuenta de la función de almacenamiento de información de información, como configurar parámetros o ejecutar registros de productos, sino también encapsular métodos simples para agregar, eliminar, modificar y consultar , reducir la dificultad de los desarrolladores en el procesamiento de los parámetros de los productos y garantizar una mejor escalabilidad del producto en actualizaciones posteriores. Haga de Flash una pequeña base de datos de almacenamiento de valores de llave que convierte flash en un modelo NoSQL (base de datos no relacional).
Esta biblioteca encapsula la interfaz comúnmente utilizada de la función IAP (programación en la aplicación), admite la verificación CRC32 y admite actualizaciones de cargador de arranque y aplicaciones.
Es ideal para productos pequeños sin sistemas de archivos, lo que facilita a los desarrolladores localizar y encontrar rápidamente las causas de los bloqueos o bloqueos del sistema. Al mismo tiempo, se usa con EasyLogger (mi biblioteca de registro C de alto rendimiento de código abierto y de alto rendimiento, que proporciona una interfaz perfecta con EasyFlash) e implementa fácilmente la función de almacenamiento flash de los registros C.
Actualmente, hay dos modos principales de la función ENV, uno es el modo NG traído a V4.0, y el otro es el modo heredado que continúa V3.0
El archivo del código fuente correspondiente es:
ef_env.c
Desde el Festival de Primavera en 2019, Easyflash finalmente lanzó la versión V4.0 después de más de 4 años de iteración y se combinó con las necesidades y sugerencias de muchos desarrolladores. La función ENV en esta versión se llama modo Ng (Next Generation). Esta es una nueva versión completamente refactorizada con las siguientes nuevas características:
V4.0 Diseño y principios internos, Guía de migración V4.0 y más, continúe leyendo la siguiente sección de documentación
Nota : Algunos flashes no se pueden escribir en orden inverso, como el flash STM32L4 en chip, por lo que no se puede usar el modo NG. En este caso, se recomienda utilizar el modo heredado de V3.0.
Los archivos de código fuente correspondientes son:
ef_env_legacy.cyef_env_legacy_wl.c
El modo heredado también tiene funciones de equilibrio de desgaste y protección de apagado. En comparación con el modo V 4.0 ng, el uso del modo heredado requiere un espacio de RAM adicional para almacenar en caché temporalmente cada env y finalmente llamar a la interfaz de guardado, borrar los sectores de manera uniforme y luego almacenarlos en flash.
| Modo v4.0 ng | V3.0 Modo heredado | |
|---|---|---|
| Uso de recursos de RAM | Bajo | alto |
| Soporte Flash Completo | Algo flash está restringido: por ejemplo, stm32l4 en chip | Más completo |
| ¿Se requiere recolección de basura GC? | Se requiere GC, lo que hace que la velocidad de escritura se desacelere cuando se desencadena GC | innecesario |
| Límite de tipo de valor | Ilimitado | Admite mejores tipos de cadenas |
| Protección de potencia | apoyo | apoyo |
| Wear Balance | apoyo | apoyo |
| Actualización incremental | apoyo | apoyo |
最低要求: ROM: 6K bytes RAM: 0.1K bytes
Actualmente, las plataformas de hardware han sido trasplantadas incluyen la serie stm32f10x y stm32f4xx en Chip Flash, y Flash SPI fuera de chip (basado en SFUD), que también son las plataformas utilizadas por los productos del autor. El portamiento de otras plataformas no es difícil. Al comienzo del diseño del proyecto, se consideraron los problemas de adaptabilidad para todas las plataformas (excepto 64 bits), por lo que se reservaron todas las interfaces de porte. Para el puerto, solo necesita modificar un archivo easyflashportef_port.c para realizar las funciones de borrado, escritura, lectura e impresión.
Bienvenido a la solicitud de horquilla y extracción (GitHub | Oschina | Codificación). Si cree que este proyecto de código abierto es excelente, puede hacer clic en Star en la esquina superior derecha de la página de inicio del proyecto y recomendarlo a más amigos necesitados.
La siguiente figura es una interfaz común para llamar a las variables de entorno a través de la consola (terminal). Demuestra el siguiente proceso, que todas las llamadas directas de la capa de aplicación.
temp y asigne un valor de 123 ;456 y guarde y reinicie;
La siguiente figura demuestra el proceso de actualización del software IAP a través de la consola. Utiliza la interfaz de función IAP que viene con la biblioteca, y la demostración utiliza el protocolo de puerto serie + ymodem. También puede realizar actualizaciones remotas de red a través de CAN, 485, Ethernet y otros buses.

El siguiente proceso es generar el registro a través de la consola y almacenar el registro de salida Flash. Reinicie y lea el último registro guardado, y finalmente borre el registro de flash.

docszhapi.mddocszhport.mddocszhv4_migrate.mddocszhdesign.mdAsegúrese de usarlo después de leer el documento .

Si Easyflash resuelve su problema, también puede escanear el código QR anterior para invitarme a tomar una taza de café ~
Use el protocolo de código abierto del MIT. Lea el contenido del archivo de licencia en el proyecto para obtener más detalles.
Easyflash es una biblioteca de memoria flash incrustada de código abierto. Proporciona una interfaz de aplicación conveniente para MCU (unidad de control micro). Los desarrolladores pueden lograr un desarrollo de aplicaciones más eficiente y común basado en la memoria flash. La biblioteca actualmente proporciona tres características útiles :
Easyflash puede almacenar parámetros de configuración o ejecutar registros y otra información que desea mantener después de la disminución. Contiene métodos de adición, eliminación, modificación y consulta. Ayuda al desarrollador a procesar los parámetros del producto y asegurarse de que el producto tenga una mejor escalabilidad después de la actualización. Convierte el flash en una pequeña base de datos NoSQL (bases de datos no relacionales) y la base de datos de almacenes de valor clave.
La biblioteca encapsula la interfaz Common Interfaz de IAP (programación en la aplicación). Soporte de la suma de verificación CRC32. Mientras admite el cargador de arranque y la actualización de la aplicación.
Es muy adecuado para productos pequeños sin un sistema de archivos. El desarrollador puede fácilmente localizar y consultar el problema cuando el sistema se bloquea o se congela. Puede usar EasyLogger (una biblioteca de registro C de alto rendimiento y alto rendimiento que me abre por mí. Proporciona una interfaz perfecta con EasyFlash) al mismo tiempo. Por lo tanto, es muy fácil almacenar los registros para flashear.
Minimum : ROM: 6K bytes RAM: 0.2K bytes
La plataforma de hardware se ha portado SPI Flash, la serie stm32f10x y stm32f4xx de flash en chip. Estas son mis plataformas de productos. La dificultad de portación de la plataforma restante es pequeña. Para portarlo, simplemente modifique easyflashportef_port.c File. Implementar la función Borrar, escribir, leer, imprimir.
Bienvenido a todos a la solicitud de bifurcación y tirar (GitHub | Oschina | Codificación). Si crees que este proyecto de código abierto es increíble. Puede presionar la estrella en la esquina superior derecha de la página de inicio del proyecto y recomendarla a más amigos.
La siguiente figura muestra que la consola (terminal) llama la interfaz común de un env (terminal). Estas interfaces son compatibles con la capa de aplicación llamada.
temp y el valor es 123 ;456 y guarde, reinicie;
La siguiente figura muestra el proceso de actualización del software a través de la consola por IAP. Utiliza esta biblioteca viene con interfaz de función IAP. Utiliza un puerto serie + modo de protocolo YModem. También se puede lograr a través de CAN, 485, Ethernet Bus para actualizar en línea.

La siguiente figura es la salida del proceso de registro a través de la consola. Los registros se guardan para flashear en tiempo real. Luego se reinicia el tablero y los registros de regreso se leen de Flash. Por fin se borrarán los registros.

Todos los documentos están en la carpeta docsen . Lea los documentos antes de portarlos y usarlos.
Usando la licencia de código abierto del MIT, lea el archivo de licencia del proyecto.