Me gustaría compartir con ustedes algunos pensamientos sobre un proyecto para ver si hay mejores soluciones que las mías ...
Estoy diseñando una placa basada en CC3220SF, que requiere un flash externo (16 Mbits) donde almacena los archivos del sistema y del usuario.
Mi aplicación DEBE tener un búfer circular persistente de 512/1024 kbytes. Esto se debe a que la placa adquiere algunos sensores periódicamente y los envía a la nube. Pero si la conexión no está disponible, DEBE guardar los datos para su posterior carga.
Algunas ideas:
- use la RAM interna: reduciendo un poco los requisitos sobre el tamaño del búfer, el espacio es suficiente pero parece que no es confiable en todos los reinicios (tenga en cuenta que mi sistema funciona con baterías: si la batería se agota, es aceptable perder el últimos registros - si los hay)
- use el flash externo: hay un montón de espacio, pero parece que no es posible "sobrescribir" un archivo cambiando solo los bytes involucrados: cualquier operación de escritura lleva a una reescritura completa de todo el archivo. Esto limita la vida útil esperada de unos 100.000 registros. De ninguna manera.
- agregue un S / F / D / NV-RAM externo: después de algunas búsquedas, encontré que las DRAM son muy baratas pero requieren un bus paralelo. Los otros tipos son bastante caros para esa capacidad.
- ok, la última idea que se me ocurre es agregar una segunda memoria flash. Ahora puedo escribir en él directamente (sin ningún sistema de archivos) pero tengo que seleccionar uno que no requiera una escritura de página completa.
Alguna otra información:
- la vida útil esperada de la batería debería permitir adquirir más de 130,000 registros
- por supuesto, después de reemplazar la batería, la placa debe seguir funcionando ...
- debido al entorno esperado, es muy probable que la junta adquiera cientos de registros todos los días SIN una conexión disponible. Luego los cargará de inmediato durante la noche.
Cualquier sugerencia sería apreciada.