Приложения AUTOSAR иногда требуют выполнения сложной логики во время инициализации системы, сброса и завершения работы. Чтобы смоделировать запуск, сброс и завершение работы обработки в программном компоненте AUTOSAR, используйте Simulink® блоки Initialize Function и Terminate Function.
Блоки Initialize Function и Terminate Function могут управлять выполнением компонента в ответ на инициализацию, сброс или завершение событий. Для получения дополнительной информации смотрите Использование функций инициализации, сброса и завершения, Генерация кода, который отвечает на инициализацию, сброс и завершение событий (Simulink Coder), и тему AUTOSAR Запуск, сброс и завершение работы.
В модели AUTOSAR вы сопоставляете каждую функцию Simulink, инициализирующую, сбрасывающую или завершающую точку входа, с выполняемой AUTOSAR. Для каждого выполнения настройте событие AUTOSAR, которое активирует выполнение. В целом можно выбрать любой тип события AUTOSAR, кроме TimingEvent
. Выполняемые функции работают с любым стилем моделирования компонентов AUTOSAR. (Однако симуляция цикл AUTOSAR инициализировать, сбросить или завершить выполнение работает только с экспортированным моделированием функции.)
В этом примере показано, как сконфигурировать программный компонент AUTOSAR для простой обработки запуска и завершения, используя блоки Initialize Function и Terminate Function.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Этот пример использует копию примера модели с возможностью записи autosar_swc
.
Добавьте блок Initialize Function к модели.
В блоке Initialize Function разработайте логику, которая требуется для выполнения во время инициализации компонента, используя методы, описанные в Использовании Функции Инициализации, Сброса и Завершения.
Добавьте блок Terminate Function к модели.
В блоке Terminate Function разработайте логику, которая требуется для выполнения во время завершения компонента, используя методы, описанные в Использовании Функции Инициализации, Сброса и Завершения.
В этом примере Terminator блок является заполнителем для сохранения значения состояния.
Добавьте функцию конечной точки входа в модель. В диалоговом окне Параметры конфигурации, на панели Code Generation > Interface, в разделе Advanced parameters, выберите Terminate function required опции. Нажмите Apply.
Откройте редактор Отображения. Чтобы обновить отображение модели в Simulink на AUTOSAR, нажмите кнопку Update. Теперь отображение отражает сложение блоков Initialize Function и Terminate Function и включение функции конечной точки входа.
Откройте словарь AUTOSAR. Разверните AtomicComponents, разверните компонент и выберите Runnables вид.
Список runnables уже содержит возможность инициализации, созданную как часть исходного представления Simulink программного компонента AUTOSAR. Используйте кнопку Add, чтобы добавить терминал, выполняемый к компоненту. Выберите каждую выполняемую и настройте ее имя и свойства.
Значение symbol выполнения, показанное в представлении runnables, становится именем функции runnable. Выполняемое Name значение используется в именах методов доступа RTE, сгенерированных для выполняемого.
Для функций initialize и terminate runnable сконфигурируйте событие AUTOSAR, которое активирует функцию runnable.
Этот пример задает ModeSwitchEvent
для каждого выполняемого. Использование ModeSwitchEvent
требует создания группы объявлений модели, интерфейса переключателя режима (M-S) и порта приемника режима для модели. Для получения дополнительной информации см. раздел «Настройка связи в режиме AUTOSAR-Switch».
В представлении runnables щелкните инициализировать имя runnable, чтобы отобразить и изменить связанные с ним свойства события. Добавьте и сконфигурируйте событие.
В представлении runnables щелкните имя завершения выполнения, чтобы отобразить и изменить связанные с ним свойства события. Добавьте и сконфигурируйте событие.
Откройте редактор Отображения и выберите вкладку Functions. Выберите функции Simulink initialize и terminate и сопоставьте их с AUTOSAR.
Создайте модель и исследуйте сгенерированный код.
Экспортированный код ARXML содержит возможность выполнения AUTOSAR для каждой подсистемы инициализации, сброса или завершения в модели с заданными именем и символом запуска AUTOSAR. Описание выполнения включает каждую точку доступа к данным AUTOSAR и точку вызова сервера, сопоставленную с точкой вызова запуска.
Сгенерированный код C содержит методы доступа RTE для параметров, состояний, вызовов функций и внешних вводов-выводов, сопоставленных с выполняемыми.
Event Listener | Initialize Function | State Reader | State Writer | Terminate Function