Diagramas de fluxo para aplicativos incorporados

8

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.

Krzych
fonte
Deseja que o software faça diagramas ou a teoria e as técnicas de como fazê-los?
1
Teoria, técnicas e exemplos serão os melhores. Estou usando o Visio ou o Visual Paradigm para criar esses diagramas, mas se você tiver algo para recomendar, também será bom.
krzych
Veja vários diagramas UML .
Nick Alexeev
Infelizmente, o @NickAlexeev não encontrou como mostrar interrupções e trabalhos realizados pela dma em sua referência.
krzych
2
Os diagramas de sequência do @krzych podem ser usados, mostrando a interação entre interrupções e o loop principal. Não é tão detalhado quanto os fluxogramas, mas pode mostrar a dimensão das interrupções.
Nick Alexeev

Respostas:

4

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!

Chirry
fonte
0

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.

x4mer
fonte