В Simulink®можно импортировать и экспортировать свойства определения данных программного обеспечения AUTOSAR и изменить свойства для некоторых форм данных AUTOSAR.
)Embedded Coder® поддерживает импорт и экспорт ARXML следующих свойств определения данных программного обеспечения AUTOSAR (SwDataDefProps
):
Доступ к калибровке программного обеспечения (SwCalibrationAccess
) - Задает доступ инструмента измерения и калибровки к объекту данных.
Формат отображения (DisplayFormat
) - Задает формат отображения измерений и калибровки для объекта данных.
Метод адреса программного обеспечения (SwAddrMethod
) - Задает метод доступа к объекту данных (для примера, параметру измерения или калибровки) согласно заданному адресу. Используется для группирования данных в памяти для доступа по измерениям и инструментам калибровки во время выполнения.
Выравнивание ПО (SwAlignment
) - Задает предполагаемое выравнивание объекта данных в разделе памяти.
Политика реализации программного обеспечения (SwImplPolicy
) - Задает политику реализации для объекта данных, относительно механизмов согласованности переменных.
Размещение записи программного обеспечения (SwRecordLayout
) - Определяет, как сериализовать данные в памяти авто-РСА ECU.
В окружение Simulink можно непосредственно изменить свойства определения данных программного обеспечения для некоторых форм данных AUTOSAR. Вы не можете изменить SwImplPolicy
или SwRecordLayout
свойства, но свойства экспортируются в код ARXML.
Дополнительные сведения см. в разделах Настройка SwCalibrationAccess, Настройка DisplayFormat, Настройка SwAddrMethod, Настройка SwAlignment, Экспорт SwImplPolicy и Экспорт SwRecordLayout для данных интерполяционной таблицы.
SwCalibrationAccess
Можно задать SwCalibrationAccess
свойство для переменных измерения, параметров калибровки и объектов данных о сигнале и параметре. Допустимые значения:
ReadOnly
- Элемент данных появляется в сгенерированном файле описания с доступом только для чтения.
ReadWrite
- Элемент данных появляется в сгенерированном файле описания с доступом как для чтения, так и для записи.
NotAccessible
- Элемент данных не отображается в сгенерированном файле описания и недоступен с помощью инструментов измерений и калибровки.
Если вы открываете модель с сигналами и параметрами, можно задать SwCalibrationAccess
свойство следующими способами:
SwCalibrationAccess
для элементов данных AUTOSARВы можете использовать или словарь AUTOSAR или MATLAB® вызовы функций, чтобы задать SwCalibrationAccess
свойство для следующих элементов данных AUTOSAR:
Элементы данных интерфейса отправитель-получатель
Энергонезависимые элементы данных интерфейса
Аргументы клиент-сервер
Межпрограммные переменные
Для примера:
Откройте модель, которая сконфигурирована для AUTOSAR.
Откройте словарь AUTOSAR. Перейдите к одному из следующих видов:
Интерфейс S-R или NV, DataElements вид
Интерфейс C-S, Arguments вид
Атомарный компонент, IRV вид
Используйте раскрывающийся список SwCalibrationAccess, чтобы выбрать уровень доступа к инструменту измерения и калибровки, чтобы разрешить для элемента данных.
Кроме того, можно использовать функции свойства AUTOSAR, чтобы задать SwCalibrationAccess
свойство для элементов данных AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls
пример модели и устанавливает доступ к измерениям и калибровке для переменных с двумя IRV2 на ReadWrite
.
hModel = 'autosar_swc_fcncalls'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess') set(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess','ReadWrite'); get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')
ans = 'ReadOnly' ans = 'ReadWrite'
Вот пример вызова свойств AUTOSAR set
функция, чтобы задать SwCalibrationAccess
для элемента данных интерфейса S-R в той же модели.
set(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess','ReadWrite'); get(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess')
ans = 'ReadWrite'
SwCalibrationAccess
по умолчанию
для типов данных приложенийОпции AUTOSAR XML включают SwCalibrationAccess DefaultValue (свойство SwCalibrationAccessDefault
), который определяет значение по умолчанию SwCalibrationAccess
значение для типов данных приложений AUTOSAR в модели. Для изменения значения по умолчанию можно использовать функции свойства AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls
пример модели и изменяет стандартный доступ к измерениям и калибровке для типов данных приложений AUTOSAR из ReadOnly
на ReadWrite
.
hModel = 'autosar_swc_fcncalls'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); get(arProps,'XmlOptions','SwCalibrationAccessDefault') set(arProps,'XmlOptions','SwCalibrationAccessDefault','ReadWrite'); get(arProps,'XmlOptions','SwCalibrationAccessDefault')
ans = 'ReadOnly' ans = 'ReadWrite'
DisplayFormat
Спецификации формата отображения AUTOSAR управляют отображением ширины и точности для данных измерений и калибровки. Можно импортировать и экспортировать спецификации формата отображения AUTOSAR и отредактировать спецификации в Simulink. Формат отображения можно задать для следующих элементов AUTOSAR:
Межпрограммные переменные
Элементы данных интерфейса отправитель-получатель
Аргументы в пользу операции интерфейса клиент-сервер
CompuMethods
Спецификация формата отображения является подмножеством ANSI® C
printf спецификаторы со следующей формой:
%[flags][width][.precision]type
Область | Описание |
---|---|
flags (необязательно) | Символы, задающие флаги, поддерживаемые схемами AUTOSAR:
|
width (необязательно) | Положительное целое число, указывающее минимальное количество символов для отображения. |
precision (необязательно) | Положительное целое число, определяющее точность отображения:
|
type | Символы, задающие тип числового преобразования, поддерживаемый схемами AUTOSAR:
|
Для примера - спецификатор формата %2.1d
задает ширину 2, точность 1 и десятичное число со знаком типа, получая отображаемое значение 12.2.
Атрибут DisplayFormat появляется в диалоговых окнах для элементов AUTOSAR, к которым он применяется. Формат отображения можно задать в диалоговом окне или с помощью API элемента, который может изменять атрибуты.
hModel = 'autosar_swc_counter'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); slMap = autosar.api.getSimulinkMapping(hModel); mapParameter(slMap,'INC','ConstantMemory','DisplayFormat','%2.6f')
Если вы задаете формат отображения, экспорт кода ARXML генерирует соответствующую спецификацию DISPLAY-FORMAT.
<PARAMETER-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>INC</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <SW-DATA-DEF-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <SW-CALIBRATION-ACCESS>READ-WRITE</SW-CALIBRATION-ACCESS> <DISPLAY-FORMAT>%2.6f</DISPLAY-FORMAT> <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </SW-DATA-DEF-PROPS> ... </PARAMETER-DATA-PROTOTYPE>
SwAddrMethod
Программные компоненты AUTOSAR используют методы адреса программного обеспечения (SwAddrMethod
s) группировать данные и функции в разделы памяти для доступа во время выполнения измерений и инструментов калибровки. Для модели Simulink, сопоставленной с программным компонентом AUTOSAR, можно связать SwAddrMethod
s с этими элементами:
Параметру модели или интерполяционной таблице сопоставлено:
Постоянная память AUTOSAR
Параметр внутренней калибровки AUTOSAR
Параметр порта AUTOSAR
Сигнал, состояние или хранилище данных сопоставлено с:
Статическая память AUTOSAR
AUTOSAR для каждого экземпляра памяти
Моделируйте функцию точки входа, сопоставленную с выполняемой AUTOSAR
Внутренние данные внутри функции точки входа модели
Создание и использование SwAddrMethod
s в модели AUTOSAR:
Импортируйте SwAddrMethod
s из файлов ARXML или создать SwAddrMethod
s в Simulink.
Для импорта SwAddrMethod
s из файлов ARXML, используйте arxml.importer
функция - createComponentAsModel
или createCompositionAsModel
для новой модели, или updateModel
или updateAUTOSARProperties
для существующей модели.
Создание SwAddrMethod
s в существующей модели откройте AUTOSAR Dictionary, представление SwAddrMethods и нажмите кнопку Add. Кроме того, используйте эквивалентные функции свойств AUTOSAR. Для получения дополнительной информации смотрите Создание SwAddrMethods в Simulink.
Ассоциируйте SwAddrMethod
s с данными моделями и функциями. Откройте редактор Отображения и выберите Parameters, Data Stores, Signals/States или Functions вкладку. Выберите элемент на этой вкладке и используйте Property Inspector, чтобы задать атрибут SwAddrMethod. Кроме того, используйте эквивалентную функцию AUTOSAR map. Для получения дополнительной информации смотрите Связать SwAddrMethod с данными моделями или функцией.
Сгенерируйте код для вашей модели AUTOSAR. (Этот пример использует сигнал, сопоставленный со статической памятью AUTOSAR в модели autosar_swc_counter
.) В сгенерированных файлах:
Экспортированные файлы ARXML содержат SwAddrMethod
описания и ссылки.
<VARIABLE-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>SM_equal_to_count</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <SW-DATA-DEF-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <SW-ADDR-METHOD-REF DEST="SW-ADDR-METHOD"> /Company/Powertrain/DataTypes/SwAddrMethods/VAR </SW-ADDR-METHOD-REF> <SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS> <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </SW-DATA-DEF-PROPS> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE"> /Company/Powertrain/DataTypes/Boolean_volatile_my_qualifier</TYPE-TREF> </VARIABLE-DATA-PROTOTYPE>
Совместимый с AUTOSAR код С содержит комментарии и #define
и #include
операторы, которые обеспечивают обертку вокруг данных или определений функций, принадлежащих каждому SwAddrMethod
раздел памяти.
/* Static Memory for Internal Data */ /* SwAddrMethod VAR for Internal Data */ #define autosar_swc_counter_START_SEC_VAR #include "autosar_swc_counter_MemMap.h" volatile my_qualifier boolean SM_equal_to_count; #define autosar_swc_conter_STOP_SEC_VAR #include "autosar_swc_counter_MemMap.h"
SwAddrMethod
s в SimulinkСоздание SwAddrMethod
s в существующей модели откройте AUTOSAR Dictionary, представление SwAddrMethods и нажмите кнопку Add.
Кроме того, используйте эквивалентные функции свойств AUTOSAR. Этот код добавляет SwAddrMethods myCODE и myVAR к модели компонента AUTOSAR.
hModel = 'autosar_swc_counter'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); addPackageableElement(arProps,'SwAddrMethod',... '/Company/Powertrain/DataTypes/SwAddrMethods','myCODE',... 'SectionType','Code') swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',... 'SectionType','Code') addPackageableElement(arProps,'SwAddrMethod',... '/Company/Powertrain/DataTypes/SwAddrMethods','myVAR',... 'SectionType','Var') swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',... 'SectionType','Var')
swAddrPaths = {'/Company/Powertrain/DataTypes/SwAddrMethods/CODE'} {'/Company/Powertrain/DataTypes/SwAddrMethods/myCODE'} swAddrPaths = {'/Company/Powertrain/DataTypes/SwAddrMethods/VAR'} {'/Company/Powertrain/DataTypes/SwAddrMethods/myVAR'}
SwAddrMethod
с Данными моделями или функциейЧтобы связать SwAddrMethod
s с данными модели и функциями, откройте редактор Code Mappings и выберите Parameters, Data Stores, Signals/States или Functions вкладку. Выберите элемент на этой вкладке и используйте Property Inspector, чтобы задать атрибут SwAddrMethod. В этом примере SwAddrMethod
VAR выбирается для equal_to_count сигнала
, который сопоставлен со статической памятью AUTOSAR.
Кроме того, используйте эквивалентную функцию AUTOSAR map. Для получения дополнительной информации смотрите страницу с описанием для mapFunction
, mapParameter
, mapSignal
, mapState
, или mapDataStore
.
SwAlignment
The SwAlignment
свойство описывает предполагаемое выравнивание данных AUTOSAR в разделе памяти. SwAlignment
задает количество бит. Допустимые значения: 8, 12, 32, UNKNOWN (устаревший), UNSPECIFIED и BOOLEAN. Для числовых данных типичные SwAlignment
значения 8, 16 и 32.
Если вы не задаете SwAlignment
свойство, swBaseType
размер и memoryAllocationKeywordPolicy
ссылку на SwAlignment
определить выравнивание.
Вы можете использовать функцию свойства AUTOSAR set
для установки SwAlignment
для элементов данных интерфейса S-R и переменных, которые можно выполнять. Для примера:
interfacePath = '/A/B/C/Interfaces/If1/'; dataElementName = 'El1'; swAlignmentValue = '32'; set(dataObj,[interfacePath dataElementName],'SwAlignment',swAlignmentValue);
Для поддержки рабочего процесса туда и обратно, импортер ARXML импортирует и сохраняет SwAlignment
свойство для следующих данных AUTOSAR:
Память в относительных экземплярах
Параметры программного компонента
Элементы данных интерфейса параметра
Аргументы в пользу операции интерфейса клиент-сервер
Статическая и постоянная память
SwImplPolicy
The SwImplPolicy
свойство задает политику реализации для элемента данных относительно механизмов согласованности переменных. Вы не можете изменить SwImplPolicy
свойство, но для свойства задано значение standard
или queued
для данных AUTOSAR в экспортированном коде ARXML. Значение установлено в:
standard
для
Память в относительных экземплярах
Межпрограммные переменные
Параметры программного компонента
Элементы данных интерфейса параметра
Аргументы в пользу операции интерфейса клиент-сервер
Статическая и постоянная память
standard
или queued
для
Элементы данных интерфейса отправитель-получатель |
SwRecordLayout
для Интерполяционной таблицы данныхПрограммные компоненты AUTOSAR используют размещения записей программного обеспечения (SwRecordLayout
s), чтобы указать, как сериализовать данные в памяти авто-РСА AUTOSAR ECU. Импортер ARXML импортирует и сохраняет SwRecordLayout
свойство для данных AUTOSAR.
Можно импортировать SwRecordLayout
s из файлов ARXML любым из двух способов:
Если вы создаете свою модель AUTOSAR из файлов ARXML с помощью функции импорта createComponentAsModel
, включать файл ARXML, содержащий SwRecordLayout
определения в импорте. Импортированные SwRecordLayout
s сохраняются и позже экспортируются в код ARXML.
Если вы создаете свою модель AUTOSAR в Simulink, можно импортировать общие определения SwRecordLayout
s из файлов ARXML. Используйте функцию импортера updateAUTOSARProperties
. Для примера:
importerObj = arxml.importer(arxmlFileName); updateAUTOSARProperties(importerObj,modelName);
При генерации кода модели экспортированный код ARXML содержит ссылки на импортированные SwRecordLayout
только для чтения элементы, но не их определения.
Для получения дополнительной информации смотрите Импорт и ссылки Общие определения элементов AUTOSAR.