¿Hay alguna forma de restablecer mediante programación el bit BWP en un PIC32?

3

Tenemos un producto que usa el PIC32MX795F512L en el campo que tiene firmware en las secciones de inicio y programa.

El flash de arranque está protegido contra escritura usando el bit BWP 24 = 0 en DEVCFG0. El firmware no está protegido por código (CP bit 28 en DEVFG0). La sección del programa también está desprotegida y se puede escribir.

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

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

¿Hay alguna manera de establecer mediante programación el bit BWP en DEVCFG0, para que podamos sobrescribir el flash de arranque con un nuevo código?

    
pregunta tcrosley

1 respuesta

3

La respuesta se basa únicamente en la información proporcionada en el Manual de referencia. Ponerse en contacto con el soporte técnico de Microchip probablemente sea 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 varias   configuraciones de dispositivos, y se encuentran en las últimas cuatro palabras (32 bits)   x 4 palabras) de memoria flash de arranque, DEVCFG0 a DEVCFG3.

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

  

La palabra de configuración, DEVCFG0, solo se puede programar una vez antes de una   El borrado de la página debe estar preformado. Cada vez que la región de memoria flash de arranque   se borra, el DEVCFG0 < 31 > bit se establece automáticamente en '0', dejando   solo una operación de programación adicional disponible, DEVCFG0.

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

No. El flash no se puede borrar si está protegido contra escritura. En el 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 del dispositivo específico para el tamaño de la página. La pagina para   ser borrado se selecciona utilizando el registro NVMADDR.

     

Una página de Flash puede   solo se borrará si la protección de escritura de la página asociada no está habilitada.

    
respondido por el Armandas

Lea otras preguntas en las etiquetas