Настройка вызовов службы AUTOSAR NVRAM Manager

Стандарт AUTOSAR Classic Platform определяет важные сервисы как часть Basic Software (BSW), которая выполняется в среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставляемые Diagnostic Event Manager (Dem), Function Inhibition Manager (FiM) и NVRAM Manager (NvM). В AUTOSAR RTE компоненты программного обеспечения AUTOSAR обычно получают доступ к службам BSW с помощью связи клиент-сервер или отправитель-получатель.

Для поддержки моделирования компонентов и служб AUTOSAR на уровне системы, AUTOSAR Blockset предоставляет библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонентов сервисов AUTOSAR BSW и ссылочных реализаций сервисов BSW. Для получения информации об использовании блоков для моделирования вызовов клиентов к сервисным интерфейсам AUTOSAR BSW, смотрите Модель AUTOSAR Basic Software Service Calls.

Пример live скрипта симуляции сервисов AUTOSAR BSW см. в примере Simulate AUTOSAR Basic Software Services и Run-Time Environment.

Вот пример настройки вызовов клиентов к интерфейсам услуг NvM в программном компоненте AUTOSAR.

  1. Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Используя браузер библиотек или вводя имена блоков в окне модели, добавьте блоки NvM к модели. Этот пример добавляет блоки NvMAdminCaller и NvMServiceCaller к копии примера модели с возможностью записи autosar_swc.

  2. Откройте каждый блок и исследуйте параметры, особенно Operation. Если вы выбираете другую операцию и кликаете Apply, программа обновляет входные и выходные входы блоков так, чтобы они совпадали с аргументами выбранной операции.

    Этот пример меняет Operation для блока NvMServiceCaller на GetDataIndex на ReadBlock. (Для примера использования readBlock в реализации датчика положения дросселя см. Пример Simulate AUTOSAR Basic Software Services и Run-Time Environment.)

    Для некоторых операций NvM, таких как ReadBlock и WriteBlockдиалоговое окно параметров блоков отображает параметр спецификации аргумента. Параметр задает тип данных и информацию о размерности для данных, которые будут считываться или записываться операцией, установленной на uint8(1) по умолчанию.

    • Чтобы задать многомерный тип данных, можно использовать синтаксис массива, такой как int8([1 1; 1 1]).

    • Чтобы задать структурированный тип данных, можно создать Simulink.Parameter объект данных, введите его с помощью a Simulink.Bus Объект и ссылка на имя параметра.

  3. Откройте редактор Отображения. Как обновить Simulink® Для отображения модели в AUTOSAR с изменениями на вызывающие абоненты функции Simulink нажмите кнопку Update. Программное обеспечение создает интерфейсы, операции и порты клиента AUTOSAR и сопоставляет каждого вызывающего абонента функции Simulink с клиентским портом и операцией AUTOSAR.

    Например, для блока NvMServiceCaller в этом примере, для которого ReadBlock операция выбрана:

    • Программное обеспечение создает интерфейс C-S NvMService, и под NvMService, его поддерживаемые операции. Для каждой операции аргументы имеют свойства только для чтения. Вот аргументы для NvMService операция ReadBlock отображается в словаре AUTOSAR.

    • Программа создает клиентский порт с именем по умолчанию NvMService. В отличие от C-S-интерфейса, операции и имен аргумента, имя порта клиента может быть настроено. Порт клиента сопоставлен с NvMService интерфейс.

    • Редактор Отображения сопоставляет NvMService блок вызывающего абонента функции на клиентский порт AUTOSAR NvMService и операция AUTOSAR ReadBlock.

  4. Опционально создайте модель и исследуйте сгенерированный код C и ARXML.

    На шаге диалога блоков, если вы выбрали операцию ReadBlock для блока NvMServiceCaller генерация кода требует добавления блоков хранилища данных к модели. Соедините первый выходной порт блока с блоком записи хранилища данных и добавьте блок памяти хранилища данных. Для обоих блоков задайте имя хранилища данных A. Для примера:

    Код С включает клиентские вызовы услуг BSW, например:

    /* FunctionCaller: '<Root>/NvMServiceCaller' */
    Rte_Call_NvMService_ReadBlock(&rtDW.A);
    ...
    /* FunctionCaller: '<Root>/NvMAdminCaller' */
    Rte_Call_NvMAdmin_SetBlockProtection(false);

    Сгенерированные файлы включения RTE определяют точки вызова операции сервера, такие как Rte_Call_NvMService_ReadBlock.

    Код ARXML определяет сервисные операции BSW, вызываемые компонентом, как серверные точки вызова, например:

    <SERVER-CALL-POINTS>
    ...
        <ASYNCHRONOUS-SERVER-CALL-POINT UUID="...">
            <SHORT-NAME>SC_NvMService_ReadBlock</SHORT-NAME>
            <OPERATION-IREF>
                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">
                  /Company/Powertrain/Components/ASWC/NvMService
                </CONTEXT-R-PORT-REF>
                <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">
                  /AUTOSAR/Services/NvM/NvMService/ReadBlock
                </TARGET-REQUIRED-OPERATION-REF>
            </OPERATION-IREF>
            <TIMEOUT>1</TIMEOUT>
        </ASYNCHRONOUS-SERVER-CALL-POINT>
    </SERVER-CALL-POINTS>
  5. Чтобы симулировать модель компонента, создайте содержащую композицию, систему или тестовую обвязку модель. В содержащую модель вставьте ссылочные реализации ReadBlock NvM и SetBlockProtection сервисные операции.

    Библиотека блоков AUTOSAR Basic Software предоставляет блок NVRAM Service Component, который обеспечивает эталонные реализации сервисных операций NvM. Можно вручную вставить блок в содержащую его композицию, систему или модель тестовой обвязки или автоматически вставить блок, создав Test™ модели тестовой обвязки Simulink.

    Для получения дополнительной информации смотрите Настройте Основные реализации программного обеспечения AUTOSAR для симуляции и Моделируйте Основные службы программного обеспечения AUTOSAR и окружение выполнения.

См. также

| |

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

Подробнее о