Estoy desarrollando un sistema integrado de eventos que utilizará tres tipos de interrupciones: interrupción del temporizador, interrupción SPI e interrupción USART. Estoy trabajando con un MCU STM32F7 y la idea es utilizar el NVIC para priorizar las interrupciones de esta manera:
- interrupción del temporizador = 0
- SPI interrupt = 1
- interrupción USART = 2
Estoy tratando de diseñar el sistema utilizando un enfoque de FSM y después de leer algunos libros y recursos sobre cómo diseñar un FSM en C, creo que realmente no entiendo cómo hacer el gráfico de estado al usar interrupciones anidadas. El hecho es que podríamos alcanzar cada estado de manejo de interrupciones desde cualquier otro estado y, en el caso de interrupciones anidadas, podríamos alcanzar un estado de manejo de interrupciones desde cualquier otro estado de manejo de interrupciones si la prioridad es mayor.
Los principales estados podrían ser:
- STARTING_EQUIPMENT
- IDLE
- EXPERIMENTO DE EJECUCIÓN
- ERROR
Las interrupciones se pueden atender desde cualquiera de estos estados.
Me gustaría saber si el FSM es una buena manera de codificar un sistema cuando se usan interrupciones anidadas y si hay alguna información sobre cómo diseñar el gráfico de estado porque no pude encontrar nada para este comportamiento específico.