У меня есть встроенное приложение, которое использует прерывания и DMA. Основной цикл только отправляет данные на ПК.
Как спроектировать блок-схему программы? Как показать прерывания и DMA, работающие на блок-схеме?
В Google я нашел несколько тем о встроенных uml-диаграммах и некоторые вопросы: Разработка встроенного программного обеспечения , но не нашел примеров таких диаграмм.
embedded
code-design
krzych
источник
источник
Ответы:
Показать диаграммы рабочего процесса независимо, один для основного цикла, один для прямого доступа к памяти и другой для прерываний.
Поскольку прерывания инициируются внешними событиями (такими как готовность АЦП, таймер, внешние прерывания), они не могут быть в основном цикле.
Просто в начале рабочего процесса поместите кружок в кружок, например: «Main», «EXT_INT», «DMA» и т. Д.
Удачи!
источник
Извините, но вы не можете показать несколько отдельных рабочих процессов на одной подключенной блок-схеме. Редко существует общее место, откуда управление основным циклом прерывается внешним событием (прерыванием) -> таким образом, точка соединения между основным потоком и потоком обработчика прерываний не может быть описана на блок-схеме.
Единственный способ - нарисовать несколько диаграмм, которые показывают рабочие процессы последовательностей, которые могут выполняться «параллельно» (процессы RTOS) или блокировать друг друга (прерывания). Эти последовательности будут иметь начальную позицию, помеченную RESET, EXT_DATA_READY_EVENT или любым другим значимым именем, описывающим начало потока выполнения для этой диаграммы. Каждая последовательность будет иметь свой собственный конец или даже не иметь маркера конца.
Эти блок-схемы могут использовать одни и те же флаги / переменные для отображения взаимозависимости.
Диаграмма последовательности также может быть полезна для вас, но я полагаю - это не то, что вы хотели в первую очередь.
источник