exponenta event banner

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

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

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

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

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

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

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

Ключевыми блоками в библиотеке являются блоки асинхронного прерывания и синхронизации задач. Эти блоки предназначены для примера RTOS (VxWorks). Их можно использовать с изменениями для поддержки приложений RTOS.

Примечание

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

Для реализации асинхронной поддержки RTOS, отличной от примера RTOS, используйте инструкции и пример кода, чтобы помочь вам адаптировать vxlib1 блоки библиотеки для назначения RTOS. Этот раздел рассматривается в разделе Создание настраиваемой асинхронной библиотеки.

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

  • Создать код уровня прерывания - блок асинхронного прерывания

  • Создать задачу RTOS, вызывающую подсистему вызова функции - блок синхронизации задачи

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

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

Использование защищенных и незащищенных блоков Rate Transition в асинхронных контекстах обсуждается в Rate Transitions и Asynchronous Blocks. Общие сведения о переходах скорости см. в разделах Планирование на основе времени и Создание кода.

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

Для доступа к библиотеке блоков RTOS (VxWorks) введите команду MATLAB ®vxlib1.

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

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

  • Установка целевого файла системы (SystemTargetFileКому ert.tlc (требуется лицензия Embedded Coder ®).

  • Выберите Только генерировать код (GenCodeOnly).

  • Выберите Создать пример основной программы (GenerateSampleERTMain).

  • Установить целевую операционную систему (TargetOSКому VxWorksExample.

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

Дополнительную информацию по темам в этой главе можно найти в

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

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

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

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

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

Связанные темы


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