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