Qualcuno ha qualche esempio visivo?Come potrei rappresentare un interrupt (per microcontrollori) in un diagramma di flusso?
risposta
È necessario disporre di un diagramma di flusso separato per l'elaborazione degli interrupt. I diagrammi di flusso sono pensati per mostrare il flusso del controllo e gli interrupt, per loro stessa natura, rappresentano un'interruzione del flusso di controllo.
Vorrei impostare un diagramma di stato finito che rappresenta i normali stati di controllo e gli stati di interruzione; ogni stato sarebbe un elemento a livello di blocco che conteneva un tipo di diagramma di flusso.
In genere, senza un sistema operativo o una libreria, gli interrupt contrassegnano semplicemente una variabile che influenza il flusso. Penso che @JustJeff abbia ragione.
A seconda della struttura del diagramma di flusso, sarebbe probabilmente più sensato avere l'interrupt originato da un nodo/box che non deriva da un altro, poiché, per definizione, un interrupt non parte dal normale flusso del software (a meno che è un interrupt attivato dal software). Potrebbe avere senso averlo su un diagramma di flusso separato o visualizzarlo con il resto del diagramma di flusso a seconda che possa attivare il comportamento nel flusso principale del grafico.
In genere gli interrupt comunicano con la funzione "principale" (o altri interrupt del caso) tramite l'utilizzo di variabili globali "condivise" nei sistemi embedded basati su C. Penso che un modo ragionevole per rappresentarlo in un diagramma di flusso sia quello di utilizzare una linea tratteggiata tra i blocchi di elaborazione in cui tali "comunicazioni" influiscono sul flusso del programma.
Ok, l'elaborazione dell'interrupt è un processo separato. Ma come posso rappresentarlo nel processo principale, per esempio? –
beh, questo è il punto: se il processo principale è in esecuzione libera, non si sa dove sarà quando si verifica l'interruzione. Con alcune applicazioni integrate in tempo reale a volte si vede 'l'elaborazione principale' sincronizzata con un interrupt, nel qual caso il diagramma di flusso potrebbe avere un blocco di 'attesa per l'interruzione', ma al contrario si potrebbe obiettare che in tali sistemi l'intero sistema è solo un sofisticato gestore di interruzioni. – JustJeff