Сконфигурируйте AUTOSAR Initialization Runnable (R4.1)

В AUTOSAR Release 4.1 введено событие инициализации AUTOSAR (InitEvent). Можно использовать InitEvent чтобы назначить выполнение AUTOSAR в качестве выполняемого инициализации, а затем сопоставить функцию инициализации с выполняемым. Использование InitEvent инициализировать программный компонент потенциально проще и эффективнее, чем использовать управление режимом AUTOSAR, в котором вы задаете ModeDeclarationGroup с режимом настройки и инициализации программного компонента. (Для получения дополнительной информации об управлении режимом см. раздел «Настройка связи между режимами и коммутаторами AUTOSAR».)

Если вы импортируете ARXML код, который описывает runnable с InitEvent, ARXML импортер конфигурирует runnable в Simulink® как инициализируемый, выполняемый.

Также можно сконфигурировать runnable, чтобы быть initialization runnable в Simulink. Для примера,

  1. Откройте модель, настроенную для AUTOSAR.

  2. Откройте диалоговое окно Параметров конфигурации, перейдите к разделу Code Generation > AUTOSAR Code Generation Options и проверьте, что выбранная версия схемы AUTOSAR 4.1 или выше.

  3. Откройте словарь AUTOSAR. Перейдите к программному компоненту и выберите вид Runnables.

  4. Выберите runnable для настройки в качестве initialization runnable и нажмите Add Event. В раскрывающемся списке Event Type выберите InitEvent, и задайте Event Name. В этом примере событие инициализации myInitEvent сконфигурирован для выполняемых Runnable_Init.

    Можно сконфигурировать самое большее одно InitEvent для runnable.

  5. Откройте редактор Отображения и выберите вкладку Functions.

  6. Чтобы сопоставить функцию инициализации с выполняемой инициализацией, выберите функцию. Из выпадающего списка Runnable выберите runnable, для которого вы сконфигурировали InitEvent. В этом примере функция точки входа Simulink Initialize сопоставлен с AUTOSAR, выполняемым Runnable_Init.

При экспорте кода ARXML из модели, содержащей возможность запуска инициализации, экспортер ARXML генерирует InitEvent который сопоставлен с инициализацией, выполняемой и функцией. Для примера:

<EVENTS>
    <INIT-EVENT UUID="...">
        <SHORT-NAME>myInitEvent</SHORT-NAME>
        <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/.../Runnable_Init</START-ON-EVENT-REF>
    </INIT-EVENT>
</EVENTS>