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

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

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

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

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

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

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

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

Примечание

Можно использовать блоки в библиотеке vxlib1 (Асинхронная Синхронизация Прерывания и Задачи) для симуляции и генерации кода. Эти блоки обеспечивают примеры отправной точки, чтобы помочь вам разработать авторские блоки для своего целевого окружения.

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

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

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

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

  • Включите целостность данных при передаче данных между блоками, запускающимися как различные задачи — блок Protected RT

  • Используйте незащищенный/недетерминированный режим при передаче данных между блоками, запускающимися как различные задачи — блок Unprotected RT

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

Доступ к библиотеке блоков для интегрирования RTOS

Чтобы получить доступ к примеру RTOS (VxWorks) библиотека блоков, введите команду MATLAB® vxlib1.

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

Чтобы сгенерировать пример совместимое приложение RTOS из модели, содержащей блоки библиотеки vxlib1, используйте следующие значения параметра конфигурации для своей модели.

  • Выберите системный конечный файл ert.tlc (требует лицензии Embedded Coder®) из меню обзора для Code Generation> параметр System target file (SystemTargetFile).

  • Включите Configuration Parameters> Code Generation> параметр Generate code only (GenCodeOnly).

  • Включите Configuration Parameters> Code Generation> Templates> Custom templates> параметр Generate an example main program (GenerateSampleERTMain).

  • Выберите VxWorksExample из меню для Configuration Parameters> Code Generation> Templates> Custom templates> параметр Target operating system (TargetOS).

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

Дополнительная информация, относящаяся к темам в этой главе, может быть найдена в

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

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

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

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

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

Похожие темы


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