Сконфигурируйте порядок выполнения выполнения AUTOSAR

Для компонентов программного обеспечения AUTOSAR Classic Platform, которые содержат несколько исполняемых элементов, спецификация AUTOSAR Timing Extensions определяет ограничения порядка выполнения. Эти ограничения задают порядок выполнения выполняемых сущностей в компоненте. Можно просматривать и управлять ограничениями на уровне компонентов или, в моделях архитектуры AUTOSAR, на уровне виртуальной функциональной шины (VFB).

В Simulink®, можно:

  • Импортируйте ограничения порядка выполнения уровня компонента и VFB из файлов ARXML.

  • Откройте компонент или архитектурную модель AUTOSAR и используйте Редактор расписаний для изменения порядка выполнения исполняемых элементов.

  • Экспорт ограничений порядка выполнения на уровне компонентов и VFB в файлы ARXML.

  • В модели компонента обновляйте ограничения порядка выполнения путем импорта изменений ARXML.

В модели компонента программного обеспечения AUTOSAR используйте Редактор расписаний, чтобы запланировать и задать порядок выполнения runnables, принадлежащих этому компоненту. Редактор расписаний отображает разделы в модели, соединения данных между ними и порядок этих разделов. В моделях компонента AUTOSAR разделы соответствуют управляемым сущностям, которые выполняются независимо. В редакторе можно:

  • Просмотр графического представления runnables как разделов в компоненте AUTOSAR.

  • Создайте разделы и сопоставьте их с выполняемыми AUTOSAR.

  • Непосредственно задайте порядок выполнения runnables.

Редактор спецификаций поддерживает несколько стилей моделирования, включая моделирование на основе скорости и экспорт функций. Дополнительные сведения см. в разделах Использование редактора спецификаций и Создание разделов. Редактор спецификаций можно также использовать в моделировании архитектуры AUTOSAR. См. «Настройка планирования и симуляции AUTOSAR».

В автономной модели компонента AUTOSAR, чтобы открыть Редактор спецификаций, откройте вкладку Modeling и выберите Schedule Editor. Для исполняемых элементов в модели компонента AUTOSAR в редакторе спецификаций первоначально отображаются неявные разделы, созданные на основе стиля моделирования компонентов. Можно просматривать и конфигурировать неявные разделы или создавать явные разделы и сопоставлять их с новыми или существующими выполняемыми AUTOSAR.

Чтобы просмотреть и сконфигурировать неявные разделы:

  1. Откройте пример модели AUTOSAR autosar_swc_expfcns, который использует экспортированные функции Simulink для моделирования runnables AUTOSAR.

  2. Откройте вкладку Modeling и выберите Schedule Editor. Редактор спецификаций отображает периодические экспортированные функции, сопоставленные с выполняемыми AUTOSAR, как неявные разделы.

    Для изменения порядка разделов используйте элементы управления редактора. Для примера в Порядок разделе щелкните по направлению стрел или перетащите записи таблицы.

Чтобы создать явный раздел в программном компоненте AUTOSAR:

  1. Откройте пример модели AUTOSAR matlabroot/ help/toolbox/autosar/examples/mAutosarMultitasking.slx, который моделирует периодические runnables, которые имеют несколько частот дискретизации.

    Первоначально с точки зрения редактора расписаний модель содержит неявные разделы D1, D2, D3 и D4.

  2. Чтобы создать раздел, откройте диалоговое окно параметров блоков для подсистемы SS1. Когда Treat as atomic unit выбран, установите Schedule as параметра равным Periodic partition. Задайте имя раздела, например P1, и шаг расчета 1. Нажмите Apply. Обновите диаграмму модели.

  3. Откройте вкладку Modeling и выберите Schedule Editor. Редактор расписаний отображает явный периодический раздел в модели.

  4. В окне модели откройте редактор Отображения и выберите вкладку Functions. Сопоставьте функцию P1 раздела с выполняемой функцией AUTOSAR.

    1. Если строение не содержит выполнение AUTOSAR, которое можно сопоставить, добавьте выполнение. Откройте представление AUTOSAR Dictionary, Runnables и нажмите кнопку Add. В данном примере создайте выполняемые Runnable_P1. Затем выберите runnable и создайте событие синхронизации.

    2. На вкладке Functions сопоставьте P1 с Runnable_P1.

Построение модели AUTOSAR, содержащей ограничения порядка выполнения, экспортирует время выполнения компонента. Если для опции AUTOSAR Dictionary XML задано значение Exported XML File Packaging Modular, время выполнения экспортируется в файл modelname_timing.arxml. Этот код ARXML показывает ограничение порядка выполнения, экспортированное для runnables в mAutosarMultitasking, на основе строения редактора расписаний.

<SWC-TIMING UUID="...">
    <SHORT-NAME>mAutosarMultitasking</SHORT-NAME>
    <TIMING-REQUIREMENTS>
        <EXECUTION-ORDER-CONSTRAINT UUID="...">
            <SHORT-NAME>EOC</SHORT-NAME>
            <ORDERED-ELEMENTS>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_P1
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_P1</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_P1
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step1
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step1</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step1
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step2
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step2</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step2
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step3
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step3</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step3
                    </EXECUTABLE-REF>
                </EOC-EXECUTABLE-ENTITY-REF>
            </ORDERED-ELEMENTS>
        </EXECUTION-ORDER-CONSTRAINT>
    </TIMING-REQUIREMENTS>
    <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">
      /pkg/swc/mAutosarMultitasking/IB
    </BEHAVIOR-REF>
</SWC-TIMING>

См. также

Похожие примеры

Подробнее о