Tengo una aplicación incrustada que usa interrupciones y dma. El bucle principal solo envía datos a la PC.
¿Cómo diseñar un diagrama de flujo del programa? ¿Cómo mostrar interrupciones y dma trabajando en diagrama de flujo?
Encontré varios temas en google sobre diagramas UML incrustados, y algunas preguntas allí: Diseño de software embebido , pero no he encontrado ejemplos de tales diagramas.
embedded
code-design
krzych
fuente
fuente
Respuestas:
Muestra los diagramas de flujo de trabajo de forma independiente, uno para el bucle principal, uno para el DMA y otro para las interrupciones.
Como las interrupciones son activadas por eventos externos (como ADC ready, timer, interrupciones externas) no puede estar en el bucle principal.
Justo al comienzo del flujo de trabajo, coloque el título en un círculo, por ejemplo: "Principal", "EXT_INT", "DMA", etc.
¡Buena suerte!
fuente
Lo sentimos, pero no puede mostrar varios flujos de trabajo separados en un diagrama de flujo conectado. Rara vez existe un lugar general desde donde el control del bucle principal se interrumpe por un evento externo (interrupción) -> por lo tanto, el punto de conexión entre el flujo principal y el controlador de interrupción no puede describirse en el diagrama de flujo.
La única forma es dibujar varios diagramas que muestren flujos de trabajo de secuencias que pueden ejecutarse "en paralelo" (procesos RTOS) o bloquearse entre sí (interrupciones). Esas secuencias tendrán su posición de inicio marcada por RESET, EXT_DATA_READY_EVENT o cualquier otro nombre significativo que describa el inicio del flujo de ejecución para este gráfico. Cada secuencia tendrá su propio final o incluso no tendrá un marcador de final.
Estos diagramas de flujo pueden compartir las mismas banderas / variables para mostrar la interdependencia.
El diagrama de secuencia también puede ser útil para usted, pero supongo que no es lo que deseaba principalmente.
fuente