Сгенерируйте процедуры обработки прерывания Еврокарты модуля Versa (VME) (ISRs), которые выполняют нисходящие подсистемы или блоки Синхронизации Задачи
Simulink Coder / Асинхронный / Шаблоны Прерывания
Поскольку каждый задал уровень прерывания VME в примере RTOS (VxWorks®), блок Async Interrupt генерирует процедуру обработки прерывания (ISR), которая вызывает одно из следующего:
Подсистема вызова функции
Блок Task Sync
График Stateflow®, сконфигурированный для вызова функции, ввел событие
Можно использовать блоки в vxlib1
Библиотека (Simulink Coder) (Async Interrupt и Task Sync) для симуляции и генерации кода. Эти блоки обеспечивают примеры начальной точки, чтобы помочь вам разработать пользовательские блоки для своего целевого окружения.
Блок поддерживает прерывания 1 - 7 VME.
Блок использует эти RTOS (VxWorks) системные вызовы:
sysIntEnable |
sysIntDisable |
intConnect |
intLock |
intUnlock |
tickGet |
Выполнение больших подсистем на уровне прерывания может оказать значительное влияние на время отклика прерывания для прерываний равного и более низкого приоритета в системе. Обычно, лучше сохранять ISRs максимально коротким. Соедините только подсистемы вызова функций, которые содержат несколько блоков с блоком Async Interrupt.
Лучшее решение для больших подсистем использует блок Task Sync, чтобы синхронизировать выполнение подсистемы вызова функций к задаче RTOS. Поместите блок Task Sync между блоком Async Interrupt и подсистемой вызова функций. Блок Async Interrupt затем использует блок Task Sync в качестве ISR. ISR выпускает семафор синхронизации (выполняет semGive
) к задаче, и сразу возвращается из уровня прерывания. Пример RTOS (VxWorks) затем планирует и запускает задачу. См. описание блока Task Sync.