3 votos

¿Hay alguna manera de reiniciar programáticamente el bit BWP en un PIC32

Tenemos un producto que utiliza el PIC32MX795F512L que tiene firmware tanto en la sección de arranque como en la de programación.

La flash de arranque está protegida contra escritura mediante el bit BWP 24 = 0 en DEVCFG0. El firmware no está protegido contra escritura (CP bit 28 en DEVFG0). La sección de programa también está desprotegida y es escribible.

Nos encontramos en una situación en la que necesitamos actualizar la flash de arranque. Dado que estas unidades están en el extranjero, no tenemos acceso físico a ellas, por lo que no podemos conectar un ordenador portátil y un programador Microchip como el ICD3 o RealICE y reprogramarlas (lo que nos daría acceso tanto a las áreas de arranque como de programa0.

Podemos actualizar la sección del programa mediante una actualización del firmware a través de nuestro módem celular.

¿Hay alguna manera de programar el bit BWP en DEVCFG0, para que podamos sobrescribir la flash de arranque con código nuevo?

3voto

Harper Shelby Puntos 431

Respuesta basada únicamente en la información proporcionada en el Manual de referencia. Contactar con el soporte técnico de Microchip sería probablemente una buena idea.

P1: ¿Se puede restablecer el bit BWP?

No, ya que los bits de configuración se almacenan en el BFM, que está protegido contra escritura. Del manual de referencia de PIC32MX, Sección 32 .2.1:

En las familias de dispositivos PIC32, las palabras de configuración seleccionan varios configuraciones del dispositivo, y se encuentran en las últimas cuatro palabras (32 bits x 4 palabras) de la memoria Boot Flash, DEVCFG0 a DEVCFG3.

Además, la palabra DEVCFG0 sólo puede programarse una vez. Después de eso, se requiere un borrado:

La palabra de configuración, DEVCFG0, sólo puede programarse una vez antes de un borrado de página. Cada vez que la región de memoria Boot Flash se borra, el bit DEVCFG0<31> se pone automáticamente a '0', dejando sólo una operación de programación adicional disponible, DEVCFG0.

P2: ¿Podemos escribir un programa para borrar el BFM y, por tanto, "resetear" el BWP?

No. La memoria flash no se puede borrar si está protegida contra escritura. Del manual de referencia Sección 5 .7:

Un borrado de página realiza un borrado de una sola página de PFM o BFM. Consulte la hoja de datos específica del dispositivo para conocer el tamaño de página. La página que La página a borrar se selecciona utilizando el registro NVMADDR.

Una página de Flash puede sólo puede borrarse si la protección contra escritura de la página asociada no está activada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X