Estoy cargando software a través de un ISP serial en un microcontrolador de la serie LPC81x. Este es un chip Cortex-M0 +. Después de cargar el software, me gustaría iniciar la ejecución del software cargado sin tener que reiniciar la CPU externamente.
Hay un comando "Ir" en el ISP serial y el software "lpc21isp" lo usa como tal: "G 0 T \ r \ n". Sin embargo, esto no parece funcionar ya que tiene varios problemas:
- La parte del programa que reside en la dirección 0x00000000 es la tabla de vectores de interrupción, no el código de programa. Iniciar la ejecución en modo pulgar en esa dirección solo va a fallar. Sin embargo, no sé qué hace realmente el comando "ir".
- Alguien debe configurar el puntero de la tabla de interrupciones (VTOR), restablecer todas las configuraciones de pin e invocar el controlador de reinicio. Esto es muy diferente de iniciar la ejecución en una dirección determinada.
- La documentación dice que no se admite el uso del comando "ir" en una dirección debajo de 0x00000200. En mi caso, al menos el controlador de reinicio reside debajo de esa dirección.
Estoy abierto a cualquier sugerencia que me permita continuar con la ejecución después del ISP.
Al igual que información adicional: la razón por la que deseo hacer esto es que no tengo líneas de comunicación de repuesto para restablecer o forzar el ISP. Sin embargo, puedo cambiar el poder al chip. Me gustaría que el chip se inicie incondicionalmente en modo ISP, por lo que puedo actualizar el software en cada arranque de chip si lo deseo.