Debido a que necesito mantener algunos estados de salida GPIO cuando se realiza la transición de la aplicación al cargador de arranque, vuelvo a saltar al cargador de arranque en lugar de usar un reinicio de software para llegar allí (lo que da como resultado una declaración de GPIO de ~ 200 ms) .
Antes de realizar el salto, deshabilito las interrupciones y borro las banderas de interrupción. Después del salto, el cargador de arranque comienza a funcionar a través de su inicialización, pero una vez que llega a INTEnableSystemMultiVectoredInt (), la MCU se reinicia ...
He intentado anular _DefaultInterrupt para detectar una interrupción que la aplicación podría haber dejado por alguna razón, pero esto no parece estar funcionando. El MCU simplemente se reinicia y me quedo rascándome la cabeza.
¿Alguna idea de lo que podría estar causando esto? Básicamente, imito el comportamiento de saltar desde el gestor de arranque a la aplicación (que funciona), por lo que no sé por qué no funciona al revés. ¿Alguna vez alguien pudo saltar de una aplicación PIC32 al cargador de arranque sin reiniciar el software?