Eu tenho aplicativo incorporado que usa interrupções e dma. O loop principal envia apenas dados para o PC.
Como projetar o diagrama de fluxo do programa? Como mostrar interrupções e dma trabalhando no diagrama de fluxo?
Encontrei vários tópicos no google sobre diagramas uml incorporados e algumas perguntas: Design de software incorporado , mas não encontrei exemplos desses diagramas.
embedded
code-design
Krzych
fonte
fonte
Respostas:
Mostre os diagramas de fluxo de trabalho de forma independente, um para o loop principal, um para o DMA e outro para as interrupções.
Como as interrupções são acionadas por eventos externos (como ADC ready, timer, interrupções externas), elas não podem estar no loop principal.
Logo no início do fluxo de trabalho, coloque o título em um círculo, por exemplo: "Principal", "EXT_INT", "DMA" etc.
Boa sorte!
fonte
Desculpe, mas você não pode mostrar vários fluxos de trabalho separados em um diagrama de fluxo conectado. Raramente existe um local geral de onde o controle do mainloop é interrompido por evento externo (interrupção) -> portanto, o ponto de conexão entre o fluxo principal e o manipulador de interrupções não pode ser descrito no diagrama de fluxo.
A única maneira é desenhar vários diagramas que mostram fluxos de trabalho de sequências que podem ser executadas "em paralelo" (processos RTOS) ou bloqueando uma à outra (Interrupções). Essas sequências terão sua posição inicial marcada por RESET, EXT_DATA_READY_EVENT ou qualquer outro nome significativo que descreva o início do fluxo de execução deste gráfico. Cada sequência terá seu próprio final ou até mesmo sem marcador final.
Esses diagramas de fluxo podem compartilhar os mesmos sinalizadores / variáveis para mostrar interdependência.
O diagrama de sequência também pode ser útil para você, mas suponho - não é o que você queria principalmente.
fonte