Обычно используются временные модели, из которых планируется генерировать код из источника периодических прерываний (например, аппаратный таймер). Блоки в периодически синхронизируемой односкоростной модели выполняются с частотой прерывания таймера (базовой скоростью модели). Блоки в периодически синхронизируемой многоскоростной модели выполняются с базовой скоростью или с кратной этой скоростью.
Многие системы также должны поддерживать выполнение блоков в ответ на события, которые являются асинхронными по отношению к периодическому источнику синхронизации системы. Например, периферийное устройство может сигнализировать о завершении операции ввода путем генерирования прерывания. Система должна обслуживать такие прерывания, например, путем получения данных от устройства прерывания.
В этом разделе объясняется, как использовать блоки для моделирования и генерации кода для асинхронной обработки событий, включая обслуживание аппаратных прерываний, обслуживание таймеров, асинхронные операции чтения и записи и создание асинхронных задач в операционной системе реального времени (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 (VxWorks) введите команду MATLAB ®vxlib1.
Создание примера приложения, совместимого с 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.