Kved: un almacén de datos de clave/valor integrable

Kved: un almacén de datos de clave/valor integrable

En algún momento al desarrollar aplicaciones integradas, querrá almacenar valores únicos en l. a. memoria no volátil, valores que no se pueden corregir en el momento de l. a. compilación. Muchos microcontroladores tienen una pequeña cantidad de memoria EEPROM para este mismo propósito, pero por lo common es bastante limitada si es que se proporciona. Incluso si tiene un poco de espacio en una EEPROM a su disposición, formatear sus valores en l. a. memoria y lidiar con el molesto problema de nivelar el desgaste (necesario para los parámetros que deben cambiar con frecuencia) puede ser un poco complicado.

Por suerte para nosotros, [Marcelo Barros] decidió compartir su propia implementación, Kved (base de datos clave/valor) que utiliza l. a. memoria flash en su lugar para dicho almacenamiento. Kved implementa una estructura de datos de tipo diccionario, utilizando claves y valores numéricos, y admite algunos tipos de enteros. El uso de l. a. biblioteca debería ser bastante sencillo, ya que [Marcelo] cube, todo lo que necesita es un par de sectores flash de repuesto y l. a. capacidad de portar el flash, las funciones de lectura, escritura y borrado del sector. Hay muchos ejemplos de dicho código disponibles para prácticamente cualquier microcontrolador, por lo que no debería ser una barrera. Para aquellos que quieran jugar con él ahora mismo, el repositorio actualmente tiene puertos para STM32L433RC y STM32F411CE, así como una versión simulada que puede compilar y ejecutar en su computadora.

Desde una perspectiva de implementación, el algoritmo de escritura utiliza un método COW (Replica On Write). Los valores modificados se invalidan sobrescribiendo l. a. ubicación de almacenamiento con ceros y reescribiendo el valor modificado en una nueva ubicación, recorriendo las ubicaciones no utilizadas hasta que el sector esté lleno. Se implementan mecanismos de integridad de datos, evitando l. a. corrupción de l. a. estructura de datos debido a situaciones de falla de energía, por lo que los valores escritos incorrectamente se corregirán en el arranque y no afectarán l. a. integridad de l. a. configuración.

Al mirar alrededor, encontramos un proyecto an identical, Embedis, en hackaday.IOasí como este artículo sobre el tema de los sistemas de archivos integrados de hace un tiempo.

Pasaporte En Linea