Асинхронные События

Асинхронная поддержка

Обычно, вы модели времени, из которых вы планируете сгенерировать код из периодического источника прерывания (например, аппаратный таймер). Блоки в периодически синхронизируемом односкоростном запуске модели на уровне прерывания по таймеру (базовая ставка модели). Блоки в периодически синхронизируемой многоскоростной модели, запущенной в базовой ставке или во множителях того уровня.

Много систем должны также поддержать выполнение блоков в ответ на события, которые являются асинхронными относительно периодического источника синхронизации системы. Например, периферийное устройство может сигнализировать о завершении входной операции путем генерации прерывания. Система должна обслужить такие прерывания, например, путем получения данных из устройства прерывания.

Эта тема объясняет, как использовать блоки, чтобы смоделировать и сгенерировать код для асинхронной обработки событий, включая обслуживание сгенерированных оборудованием прерываний, обслуживание таймеров, асинхронные операции чтения и операции записи и порождение асинхронных задач под операционной системой реального времени (RTOS). Эта библиотека блоков демонстрирует интеграцию с примером RTOS (VxWorks®). Несмотря на то, что блоки предназначаются для примера RTOS, эта глава обеспечивает анализ исходного кода и другую информацию, которую можно использовать, чтобы разработать блоки, которые поддерживают асинхронную обработку событий для альтернативного целевого RTOS.[1]

Библиотека блоков для вызовов операционной системы реального времени в качестве примера

Следующий рисунок показывает блоки в vxlib1 библиотека блоков.

Ключевые блоки в библиотеке являются блоками Task Sync и Async Interrupt. Эти блоки предназначены для примера RTOS (VxWorks). Можно использовать их, с модификацией, чтобы поддержать приложения RTOS.

Примечание

Используйте блоки в библиотеке блоков Шаблонов Прерывания (Async Interrupt и Task Sync) для симуляции и генерации кода. Эти блоки обеспечивают примеры начальной точки, чтобы помочь вам разработать пользовательские блоки для целевого окружения.

Чтобы реализовать асинхронную поддержку RTOS кроме примера RTOS, используйте эти инструкции, и пример кода в Создают Индивидуально настраиваемую Асинхронную Библиотеку, чтобы адаптировать блоки Библиотеки шаблонов Прерывания к вашему RTOS.

Библиотека шаблонов Прерывания включает блоки, для которых можно использовать:

  • Сгенерируйте код уровня прерывания — блок Async Interrupt

  • Породите задачу RTOS, которая вызывает подсистему вызова функции — блок Task Sync

Использование защищенных и незащищенных блоков Перехода Уровня в асинхронных контекстах обсуждено в Переходах Уровня и Асинхронных Блоках. Для получения общей информации о переходах уровня смотрите Основанное на времени Планирование и Генерацию кода.

Сгенерируйте код Используя библиотечные блоки для интегрирования RTOS

Чтобы сгенерировать пример совместимое приложение RTOS из модели, которая содержит блоки Библиотеки шаблонов Прерывания, используйте эти настройки параметра конфигурации модели для своей модели:

  • Установите System target file (SystemTargetFile) к ert.tlc (требует Embedded Coder®).

  • Выберите Generate code only (GenCodeOnly).

  • Выберите Generate an example main program (GenerateSampleERTMain).

  • Установите Target operating system (TargetOS) к VxWorksExample.

Примеры и дополнительная информация

  • Модель Example rtwdemo_async, который использует tornado.tlc системный конечный файл и библиотека блоков Шаблона Прерывания. Чтобы открыть модель, введите rtwdemo_async в MATLAB® командная строка.

  • Модель Example rtwdemo_async_mdlreftop, который использует tornado.tlc системный конечный файл и библиотека блоков Шаблона Прерывания. Чтобы открыть модель, введите rtwdemo_async_mdlreftop в командной строке MATLAB.

  • Основанное на времени Планирование и Генерация кода обсуждают общую многозадачность и проблемы перехода уровня для периодических моделей.

  • Документация Embedded Coder обсуждает ert.tlc системный конечный файл, включая выполнение задачи и планирование.

  • Для получения дальнейшей информации о системных вызовах к примеру RTOS (VxWorks) упомянутый в этой теме, см. документацию по системе VxWorks на Wind River® веб-сайт.

Похожие темы


[1] VxWorks является зарегистрированной торговой маркой Wind River Systems, Inc.

Для просмотра документации необходимо авторизоваться на сайте