¿Es necesario escribir todo el código de escritura MSP430 FLASH que se debe ejecutar desde la RAM?

1

Estoy escribiendo algunos parámetros del dispositivo en la memoria flash no volátil del controlador msp430f2619. El código de muestra muestra que la función de escritura en flash se debe copiar a la RAM en la sección de inicialización.

Pero estoy usando esta función para escribir en algunos segmentos dedicados de Flash. (En realidad estoy escribiendo en el segmento B de la memoria de información)

Entonces, ¿es realmente necesario copiar este código en la RAM?

Me estoy quedando sin memoria RAM y al liberar esta memoria para almacenar la función de escritura flash, puedo usarla para mi aplicación.

    
pregunta prasad

1 respuesta

2

No, no es necesario.

Puede escribir en la memoria de información mientras el código con las instrucciones de escritura se ejecuta desde flash. No solo la memoria de información, sino todo el flash (excepto la sección del código que realmente escribe el flash) se puede escribir desde flash.

En realidad, el controlador flash del MSP430 lo maneja de manera muy inteligente, mientras que estados en grandes frases de miedo que:

  

Leer desde o escribir en la memoria flash mientras se está programando   o borrado está prohibido. Si se requiere la ejecución de la CPU durante la escritura   o borrar, el código a ejecutar debe estar en la memoria RAM.

Esto suena un poco intimidante al principio, pero si lee todo el capítulo (muy recomendable) encontrará información que le indica que, mientras el controlador de memoria flash está ocupado, una lectura de la CPU devolverá 0x3FFF será el código de operación para JUMP PC (saltar al contador del programa) que solo detendrá la CPU hasta que el controlador flash termine de hacer las cosas. (2)

El modo de escritura en bloque no es compatible con flash, por lo que no podrá obtener los tiempos de escritura más rápidos si ejecuta su escritura desde flash. Yo diría que si solo desea escribir algunos valores de calibración o números de serie, no importará mucho. Si intenta implementar su propio gestor de arranque para actualizar todo el dispositivo, es mejor que lo ejecute desde la RAM y use el modo de escritura en bloque para ganar velocidad.

Solo tenga cuidado con la instrucción de borrado primero para eliminar solo las cosas que necesita eliminar, accidentalmente perdí toda la información de calibración una vez porque no lo estaba.

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas