Flussdiagramme für eingebettete Anwendungen

Ich habe eine eingebettete Anwendung, die Interrupts und DMA verwendet. Die Hauptschleife sendet nur Daten an den PC.

Wie entwerfe ich ein Flussdiagramm des Programms? Wie zeige ich Interrupts und DMA, die am Flussdiagramm arbeiten?

Ich habe in Google mehrere Themen zu eingebetteten UML-Diagrammen und dort einige Fragen gefunden: Designing embedded software , habe aber keine Beispiele für solche Diagramme gefunden.

Möchten Sie Software zum Erstellen von Diagrammen oder die Theorie und Techniken, wie man sie erstellt?
Theorie, Techniken und Beispiele werden am besten sein. Ich verwende Visio oder Visual Paradigm, um solche Diagramme zu entwerfen, aber wenn Sie etwas zu empfehlen haben, ist es auch gut.
Sehen Sie sich verschiedene UML-Diagramme an .
@NickAlexeev hat leider nicht gefunden, wie Interrupts und von dma ausgeführte Arbeiten in Ihrer Referenz angezeigt werden.
@krzych Sequenzdiagramme können verwendet werden, um das Zusammenspiel zwischen Interrupts und der Hauptschleife zu zeigen. Es ist nicht so detailliert wie Flussdiagramme, aber es kann die Interrupt-Dimension zeigen.

Antworten (2)

Zeigen Sie die Workflow-Diagramme unabhängig voneinander an, eines für die Hauptschleife, eines für den DMA und das andere für die Interrupts.

Da die Unterbrechungen durch externe Ereignisse (wie ADC bereit, Timer, externe Unterbrechungen) ausgelöst werden, können sie nicht in der Hauptschleife sein.

Setzen Sie den Titel gleich zu Beginn des Workflows in einen Kreis, zum Beispiel: "Main", "EXT_INT", "DMA" usw.

Viel Glück!

Entschuldigung, aber Sie können nicht mehrere separate Workflows in einem verbundenen Flussdiagramm anzeigen. Es gibt selten einen allgemeinen Ort, an dem die Steuerung der Hauptschleife durch ein externes Ereignis (Interrupt) unterbrochen wird -> daher kann der Verbindungspunkt zwischen Haupt- und Interrupt-Handler-Fluss nicht im Flussdiagramm beschrieben werden.

Die einzige Möglichkeit besteht darin, mehrere Diagramme zu zeichnen, die Arbeitsabläufe von Sequenzen zeigen, die "parallel" ablaufen (RTOS-Prozesse) oder sich gegenseitig blockieren (Interrupts). Diese Sequenzen haben ihre Startposition, die durch RESET, EXT_DATA_READY_EVENT oder einen anderen aussagekräftigen Namen gekennzeichnet ist, der den Beginn des Ausführungsflusses für dieses Diagramm beschreibt. Jede Sequenz hat ihr eigenes Ende oder sogar keine Endmarkierung.

Diese Flussdiagramme können dieselben Flags/Variablen teilen, um die gegenseitige Abhängigkeit zu zeigen.

Das Sequenzdiagramm kann auch für Sie praktisch sein, aber ich nehme an - es ist nicht das, was Sie in erster Linie wollten.