Стандарт 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.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Используя браузер библиотек или вводя имена блоков в окне модели, добавьте блоки NvM к модели. Этот пример добавляет блоки NvMAdminCaller и NvMServiceCaller к копии примера модели с возможностью записи autosar_swc.

Откройте каждый блок и исследуйте параметры, особенно 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 Объект и ссылка на имя параметра.

Откройте редактор Отображения. Как обновить 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.

Опционально создайте модель и исследуйте сгенерированный код 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>Чтобы симулировать модель компонента, создайте содержащую композицию, систему или тестовую обвязку модель. В содержащую модель вставьте ссылочные реализации ReadBlock NvM и SetBlockProtection сервисные операции.
Библиотека блоков AUTOSAR Basic Software предоставляет блок NVRAM Service Component, который обеспечивает эталонные реализации сервисных операций NvM. Можно вручную вставить блок в содержащую его композицию, систему или модель тестовой обвязки или автоматически вставить блок, создав Test™ модели тестовой обвязки Simulink.

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