Для AUTOSAR Classic Platform стандарт AUTOSAR определяет важные услуги как часть базового программного обеспечения (BSW), работающего в среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставляемые диспетчером событий диагностики (Dem), менеджером ингибирования функций (FiM) и менеджером NVRAM (NvM). В AUTOSAR RTE программные компоненты AUTOSAR обычно получают доступ к службам BSW, используя связь клиент-сервер или отправитель-получатель.
Для поддержки системного моделирования компонентов и служб AUTOSAR, AUTOSAR Blockset предоставляет библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонентов служб AUTOSAR BSW и ссылочных реализаций служб BSW. Для получения информации об использовании блоков для моделирования вызовов клиента к сервисным интерфейсам AUTOSAR BSW см. Модель базовых сервисных вызовов AUTOSAR.
Пример реального сценария моделирования служб BSW AUTOSAR см. в разделе Пример моделирования базовых программных служб AUTOSAR и среды выполнения.
Ниже приведен пример конфигурирования вызовов клиента к интерфейсам услуг NvM в программном компоненте AUTOSAR.
Откройте модель, настроенную для генерации кода AUTOSAR. С помощью обозревателя библиотек или путем ввода имен блоков в окне модели добавьте в модель блоки NvM. В этом примере блоки NvMAdminCaller и NvMServiceCaller добавляются к копии примера модели с возможностью записи. autosar_swc.

Откройте каждый блок и изучите параметры, особенно «Работа». Если выбрать другую операцию и нажать кнопку «Применить», программа обновит входные и выходные данные блока в соответствии с аргументами выбранной операции.
В этом примере изменяется операция для блока NvMServiceCaller с GetDataIndex кому ReadBlock. (Для примера использования readBlock в реализации датчика положения дросселя см. пример Simulate AUTOSAR Basic Software Services и Run-Time Environment.)

Для некоторых операций NvM, таких как ReadBlock и WriteBlockв диалоговом окне параметров блока отображается параметр спецификации аргумента. Параметр определяет тип данных и информацию об измерении для данных, которые будут считаны или записаны операцией, значение uint8(1) по умолчанию.
Для указания многомерного типа данных можно использовать синтаксис массива, например int8([1 1; 1 1]).
Чтобы указать структурированный тип данных, можно создать Simulink.Parameter объект данных, введите его с помощью 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. Например:

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

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