Для Классической Платформы AUTOSAR стандарт AUTOSAR задает важные сервисы как часть Basic Software (BSW), который запускается в Среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставленные Диагностическим менеджером событий (DEM), Функциональный менеджер по Ингибированию (FiM) и менеджер NVRAM (NvM). В AUTOSAR RTE, компоненты программного обеспечения AUTOSAR обычно доступ сервисы BSW, использующие клиент-сервер или коммуникация приемника отправителя.
Чтобы поддержать моделирование уровня системы компонентов AUTOSAR и услуги, AUTOSAR Blockset обеспечивает библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонента услуг AUTOSAR BSW и ссылочных реализаций сервисов BSW. Для получения информации об использовании блоков к клиентским вызовам модели сервисных интерфейсов AUTOSAR BSW см. Модель Вызовы Программного сервиса AUTOSAR Basic.
Для примера live скрипта симуляции сервисов AUTOSAR BSW смотрите, что пример Симулирует Основные Программные сервисы AUTOSAR и Среду выполнения.
Вот пример конфигурирования клиентских вызовов сервисных интерфейсов NvM в вашем компоненте программного обеспечения AUTOSAR.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Используя Браузер Библиотеки или путем ввода имен блока в окне модели, добавьте блоки NvM в модель. Этот пример добавляет блоки NvMAdminCaller и NvMServiceCaller к перезаписываемой копии модели autosar_swc
в качестве примера.
Откройте каждый блок и исследуйте параметры, особенно Operation. Если вы выбираете различную операцию и нажимаете Apply, обновления программного обеспечения вводы и выводы блока, чтобы совпадать с аргументами выбранной операции.
Этот пример изменяет Operation для блока NvMServiceCaller из GetDataIndex
к ReadBlock
. (Для примера использования readBlock
в реализации датчика положений дросселя смотрите, что пример Симулирует Основные Программные сервисы AUTOSAR и Среду выполнения.)
Для некоторых операций NvM, таких как ReadBlock
и WriteBlock
, диалоговое окно параметров блоков отображается параметр спецификации аргумента. Параметр указывает информацию типа данных и размерности для данных, которые будут считаны или записаны операцией, установите на uint8(1)
по умолчанию.
Чтобы задать тип многомерных данных, можно использовать синтаксис массивов, такой как int8([1 1; 1 1])
.
Чтобы задать структурированный тип данных, можно создать a Simulink.Parameter
объект данных, введите его с a Simulink.Bus
объект и ссылка название параметра.
Откройте редактор Отображений Кода. Чтобы обновить Simulink® к отображению AUTOSAR модели с изменениями в вызывающих сторонах функции Simulink, нажмите кнопку Update. Программное обеспечение создает интерфейсы клиентской службы AUTOSAR, операции и порты, и сопоставляет каждую вызывающую сторону функции Simulink с клиентским портом AUTOSAR и операцией.
Например, для блока NvMServiceCaller в этом примере, для который ReadBlock
операция выбрана:
Программное обеспечение создает интерфейс C-S NvMService
, и под NvMService
, его поддерживаемые операции. Для каждой операции аргументам предоставляют свойства только для чтения. Вот аргументы для NvMService
операция ReadBlock
отображенный в Словаре AUTOSAR.
Программное обеспечение создает клиентский порт с именем по умолчанию NvMService
. В отличие от C-S-interface, операции и имен аргумента, может быть настроено имя клиентского порта. Клиентский порт сопоставлен с NvMService
интерфейс.
Редактор Отображений Кода сопоставляет NvMService
функционируйте блок вызывающей стороны к клиентскому порту AUTOSAR NvMService
и операция AUTOSAR ReadBlock
.
Опционально, создайте свою модель и исследуйте сгенерированный C и код ARXML.
На диалоговом шаге блока, если вы выбрали операцию ReadBlock
для блока NvMServiceCaller генерация кода требует добавляющих блоков хранилища данных к модели. Соедините блок первый выходной порт с блоком Data Store Write и добавьте Блок памяти Хранилища данных. Для обоих блоков задайте имя хранилища данных 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>
Чтобы симулировать модель компонента, создайте содержание состава, системы или модели тестовой обвязки. В том содержащем модель, вставьте ссылочные реализации NvM ReadBlock
и SetBlockProtection
сервисные операции.
Библиотека блоков AUTOSAR Basic Software обеспечивает блок NVRAM Service Component, который обеспечивает ссылочные реализации сервисных операций NvM. Можно вручную вставить блок в содержание состава, системы или модели тестовой обвязки, или автоматически вставить блок путем создания модели тестовой обвязки Simulink Test™.
Для получения дополнительной информации смотрите, Конфигурируют Основные Реализации Программного сервиса AUTOSAR для Симуляции и Симулируют Основные Программные сервисы AUTOSAR и Среду выполнения.
NvMAdminCaller | NvMServiceCaller | NVRAM Service Component