cargador de arranque PIC24 escribiendo los bits de configuración

1

Tengo un sistema integrado con un host PIC24 para el que acabo de terminar el código, y he notado algunos cambios extraños en la forma en que funciona mi gestor de arranque, pero sin cambiar nada lo suficientemente bajo como para afectar esto.

He estado usando el cargador de arranque HID USB de Microchip por un tiempo, y por lo general es literalmente enchufarlo, cargar hexadecimal y presionar ir. Recientemente he tenido que asegurar que los bits de configuración también se escriban, pero mis bits de configuración no han cambiado en el BL o en la aplicación principal en meses (verificados por nuestro historial de git).

Si escribo el hex en el dispositivo sin programar también los bits de configuración, se vuelve totalmente insensible o actúa como si no hubiera una aplicación y siempre aparece por defecto en el BL.

Funciona bien con los bits de configuración que están programados, pero puedo ver cómo esto es un mal movimiento para cualquier unidad de producción en el caso de una actualización de campo, incluso si es una posibilidad remota de poner la unidad en un punto.

El único cambio importante que he notado es que cambiamos a un modelo de código grande en xc16-gcc, pero tenía la impresión de que esto solo marcaría al compilador varias cosas sobre la localidad de las variables, etc., y no cambiaría la memoria. asignaciones.

¿Alguien ha visto este comportamiento antes? Puede muy bien ser algo que nos hemos perdido en las hojas de datos.

    
pregunta njt

1 respuesta

4

Es probable que el código del cargador de arranque de Microchip esté borrando toda la región de Flash antes de la programación. Si no programa los bits de configuración antes de restablecerlos, se dejarán en 0xFF, lo que es bastante improbable de lo que quería.

Modifique el cargador de arranque para evitar borrar la página final de Flash o asegúrese de volver a aplicar la configuración necesaria después de borrar.

    
respondido por el natevw

Lea otras preguntas en las etiquetas