Ebedded Linux: RAM recuperable, con respaldo de batería (/ tmp) [cerrado]

2

Espero que este sea un lugar apropiado para esta pregunta, ya que implica el uso del núcleo.

Tengo un sistema integrado con una batería de respaldo para el chip RAM. La batería también permite que la MCU se apague correctamente.

Los datos que estoy escribiendo en la RAM van en la carpeta / tmp. Cuando Linux se apaga y luego se reinicia nuevamente, pierdo el acceso a la RAM.

En el proceso de apagado correcto, es posible guardar la ubicación de montaje (ubicación de la memoria) de / tmp en un archivo en la memoria no volátil para que cuando Linux se reinicie de nuevo pueda alinear la memoria y permitirme acceder La memoria RAM conservada con precisión?

Si es así, ¿cómo se puede hacer esto?

¡Gracias!

    
pregunta zme

1 respuesta

1

Mantener el poder no es suficiente para preservar los contenidos regulares de SDRAM. Como mínimo, deberá proporcionar el reloj y enviar periódicamente el "comando de actualización" si necesita conservar el contenido durante más de unos pocos milisegundos o decenas de milisegundos. Si su sistema permite que el controlador DRAM funcione mientras el resto del sistema está apagado, intente hacerlo cuando se apague.

Si puede obtener PSDRAM (DRAM seudoestática) o SDRAM autorrecuperable ( ejemplo ), no tendrá que preocuparse por la actualización, ya que el controlador SDRAM se integrará en la RAM. Esto es lo que algunos teléfonos móviles y otros dispositivos portátiles utilizan para reducir el consumo de corriente en el modo de suspensión. Aún tendrás que proporcionar el reloj para que funcione.

Tenga en cuenta que tmpfs no está diseñado teniendo en cuenta ningún tipo de persistencia: el sistema de archivos simplemente se vuelve a crear desde cero cada vez que lo monta. Además, /tmp es el lugar equivocado para guardar archivos persistentes de todos modos. Incluso si conservas el contenido de la RAM y escribes un controlador de sistema de archivos que tiene en cuenta la persistencia, Linux es libre de borrar la carpeta /tmp cuando se reinicia.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas