Событийно-управляемые задачи начинают выполняться, когда инициировано внешним событием. События могут включать внутренние события, такие как поток памяти или указать записи или внешние события, такие как получение пакета данных о UDP от сетевого подключения. Принятие никаких других задач выполняется во время события, или задача имеет самый высокий приоритет, событийно-управляемая задача может сразу ответить на событие. Задача может затем обработать полученные данные, и потенциально сгенерировать другие события в модели.
Этот пример показывает, как создать и сконфигурировать модель Simulink®, чтобы использовать управляемую событиями функцию задачи SoC Blockset.
Создайте модель руководства по программному обеспечению
Этот раздел показывает, как создать эталонную модель программного обеспечения для прикладной модели SoC. Программное обеспечение содержит управляемую событиями подсистему задачи, которая реагирует на получение пакетов UDP.
Создайте новую пустую модель.
В редакторе Simulink добавьте блок Function-Call Subsystem в модель. Соедините блок Inport с входным портом блока Function-Call Subsystem. Соедините выходной порт с блоком Termclcinator.
Добавьте блок Asynchronous Task Specification в модель. На диалоговом окне Block Parameters, набор Приоритет задач к 41
.
Соедините выходной порт блока Asynchrnous Task Specification к функции () вход блока Function-Call Subsystem.
Добавьте блок Inport и откройте диалоговое окно Параметров блоков. На вкладке Signal Attributes проверяйте вызов Выходной функции. Соедините блок Inport с входным портом блока Asynchronous Task Specification.
Откройте модель Подсистемы вызова функций.
Добавьте блок UDP Read в модель. Откройте диалоговое окно Block Parameters, установите Максимальную длину данных (элементы) на 1024
, и проверка Включают основанное на событии выполнение.
Соедините блок Inport с Портом данных UDP блока UDP Read. Соедините Порт данных с блоком Outport. Соедините порт Length с блоком Terminator.
Откройте диалоговое окно Configuration Parameters, выберите панель Решателя. Установите выбор Решателя> Тип к Fixed-step
и Управлению задачами проверки и демонстрационным опциям таймера>, Более высокое приоритетное значение указывает на более высокий приоритет задач.
Выберите панель Аппаратной реализации, установите Аппаратную плату на Zedboard
.
Сохраните модель как soc_task_createeventdriventask_software.slx
.
Завершенная модель должна выглядеть подобной следующей модели.
Создайте прикладную модель SoC
Этот раздел показывает, как создать верхний уровень прикладная модель SoC, которая содержит модель руководства по программному обеспечению, разработанную в предыдущем разделе.
Создайте новую пустую модель.
В редакторе Simulink добавьте блок Model. На диалоговом окне Block Parameters, определенном Имени модели к soc_task_createeventdriventask_software.slx
.
Добавьте блок Task Manager и откройте диалоговое окно Block Parameters. Установите Основное> Тип к Event-driven
и Основной> Приоритет к 41
. Каждая недавно добавленная событийно-управляемая задача представляет входной порт сообщения о событии на блоке Task Manager.
(Необязательно) На вкладке Simulation, вы задаете длительность задачи для той задачи. Для получения дополнительной информации о том, чтобы поставить длительность задачи смотрите Длительность Задачи.
В редакторе добавьте блок IO Data Source в модель. Откройте диалоговое окно Block Parameters и включите порт события Show.
Соедините порт Event блока IO Data Source с Диспетчером задач и Портом данных UDP к порту UDP Data Message на блоке Модели - ссылки.
Откройте диалоговое окно Configuration Parameters, выберите панель Решателя. Установите выбор Решателя> Тип к Fixed-step
и Управлению задачами проверки и демонстрационным опциям таймера>, Более высокое приоритетное значение указывает на более высокий приоритет задач.
Выберите панель Аппаратной реализации, установите Аппаратную плату на Zedboard
.
Обновите схему, нажмите Ctrl+D.
Сохраните модель как soc_task_createeventdriventask_application.slx
.
Завершенная модель должна выглядеть подобной следующей модели.
Запустите модель с управляемой событиями задачей
В редакторе Simulink запустите модель soc_task_createeventdriventask_application.slx
. Когда выполнение завершится, откройте Инспектора данных моделирования (SDI) и выберите Task1. Отображение SDI показывает, что Task1 инициировал и выполняется каждый раз, когда новый пакет UDP прибывает. Несмотря на то, что поверхностно выполнение задачи кажется периодическим, это - только побочный продукт текущих настроек по умолчанию блока IO Data Source, который генерирует событие с временным шагом 0.1
.
Источник данных ввода-вывода | Диспетчер задач