Este documento proporciona una descripción general de la función Start/Stop y describe cómo usar la función Start/Stop para medir el tiempo de ejecución de un programa de usuario como ejemplo de aplicación. Este manual asume el uso del kit de inicio de Renesas para R8C/2D y el programa tutorial que lo acompaña. Sin embargo, si cambia la parte de procesamiento del temporizador del programa, la explicación aquí también se puede aplicar a otras microcomputadoras Renesas.
resumen El emulador E8a tiene una función para ejecutar una rutina específica en el programa de usuario inmediatamente antes de que el programa de usuario comience a ejecutarse e inmediatamente después de que se detenga. Esta función se denomina función de inicio/parada. Para control de motores, etc., si el programa de usuario se detiene repentinamente durante la depuración, el motor se detendrá repentinamente. Esto causa problemas. Por lo tanto, al utilizar la función Iniciar/Parar, puede detener o reiniciar el control del motor o el control del temporizador inmediatamente después de detener o iniciar el programa de usuario. Entonces puede depurar su programa de forma segura.
Este documento proporciona una descripción general de la función Start/Stop y describe cómo usar la función Start/Stop para medir el tiempo de ejecución de un programa de usuario como ejemplo de aplicación. Este manual asume el uso del kit de inicio de Renesas para R8C/2D y el programa tutorial que lo acompaña. Sin embargo, si cambia la parte de procesamiento del temporizador del programa, la explicación aquí también se puede aplicar a otras microcomputadoras Renesas.
Vista general de la función de inicio/parada
Mediante el uso de la función Iniciar/Detener, es posible ejecutar una rutina específica en el programa de usuario inmediatamente antes de iniciar la ejecución del programa de usuario e inmediatamente después de detener la ejecución, como se muestra a continuación. Las rutinas que se ejecutarán inmediatamente antes de iniciar la ejecución del programa de usuario e inmediatamente después de detenerse se pueden configurar individualmente. Estas rutinas se ejecutan de acuerdo con el tiempo que se muestra en el siguiente diagrama de flujo.
De hecho, en el diagrama de flujo anterior, se realizan varias operaciones de firmware después de que la rutina de inicio complete la ejecución y antes de que el programa de usuario realmente comience a ejecutarse, y después de que el programa se detenga antes de que se ejecute la rutina de detención. Aunque depende de la microcomputadora utilizada y de la versión del software, el programa del usuario tarda entre 50 y 100 ciclos en comenzar a operar después de que se ejecuta la rutina de inicio, y entre 100 y 150 ciclos para que comience el tiempo finito. Después de que el programa se detiene, se ejecuta la rutina de parada.
Al especificar el procesamiento para detener el motor como la rutina de detención y el procesamiento para reiniciar el motor como la rutina de inicio en el programa de control del motor, etc., el motor se puede detener y reiniciar de manera segura incluso si el programa del usuario se detiene en el medio. poder. depurar.
Consideraciones al escribir rutinas de inicio/parada
Las rutinas de inicio/parada se pueden escribir en C y en ensamblador, pero cada rutina debe terminar con una instrucción RTS.
Además, dado que la función Iniciar/Detener está estrechamente relacionada con el control del depurador del emulador, el emulador se volverá incontrolable si no se observan las siguientes precauciones. (Las rutinas de inicio y detención se denominan colectivamente aquí como rutinas “designadas”).
- No cambie los SFR utilizados por el firmware del emulador E8a. Para obtener detalles sobre los SFR utilizados por el firmware del emulador E8a, consulte el manual del usuario del emulador E8a independiente para cada tipo de MCU.
- Cuando utilice el temporizador de vigilancia, asegúrese de actualizar el temporizador de vigilancia no solo en el programa del usuario sino también en la rutina especificada.
- No establezca puntos de interrupción en la rutina especificada.
- Cuando use la pila dentro de la rutina especificada, asegúrese de usar la pila de usuario (USP). No hay pila de interrupción (ISP) disponible.
- Los valores de registro al comienzo de la ejecución de la rutina especificada no están definidos. Es posible cambiar los valores de registro dentro de la rutina especificada, pero existen restricciones en los registros y banderas que se enumeran a continuación.