Компоненты программного обеспечения AUTOSAR могут гибко задать размерности элемента AUTOSAR, такие как порт, при помощи символьной ссылки на постоянную систему. Постоянная система задает размер массивов типа данных порта. К элементам модели AUTOSAR с различными размерами массивов в Simulink®:
Создайте блоки, которые представляют элементы AUTOSAR.
Чтобы представлять значения размера массивов, добавить AUTOSAR.Parameter
объекты данных с классом памяти SystemConstant
.
Чтобы задать размер массивов для элемента AUTOSAR, сошлитесь AUTOSAR.Parameter
объект данных.
С различными размерами массивов можно изменить значения размера массивов в системных константах между симуляциями модели, не регенерируя код для симуляции. Когда вы создаете модель, сгенерированный C и код ARXML содержат соответствие символов различным размерам массивов.
Предположим, что вы создаете импорт Simulink In1
представлять порт приемника AUTOSAR различным размером массивов.
Смоделировать систему AUTOSAR, постоянную, который задает размерности In1
, создайте AUTOSAR.Parameter
объект данных, SymDimA
, с классом памяти SystemConstant
. Тип данных должен быть 32-битным целочисленным типом со знаком.
SymDimA = AUTOSAR.Parameter; SymDimA.CoderInfo.StorageClass = 'custom'; SymDimA.CoderInfo.CustomStorageClass = 'SystemConstant'; SymDimA.DataType = 'int32'; SymDimA.Min = 1; SymDimA.Max = 100; SymDimA.Value = 5;
В диалоговом окне для блока In1
импорта, вкладка Signal Attributes, поле Port dimensions, вводит название параметра,
SymDimA
.
Чтобы позволить символьным размерностям распространять в модели, необходимо выбрать параметр конфигурации модели, Позволяют символьную спецификацию размерности.
Когда вы генерируете код для модели, имени постоянной системы, SymDimA
, кажется, в C и коде ARXML представляет различный размер массивов. Вот выборка сгенерированного кода C:
/* SignalConversion generated from: '<Root>/Vector Concatenate' */ for (i = 0; i < Rte_SysCon_SymDimA; i++) { rtb_VectorConcatenate[i] = tmpIRead[i];
Вот выборка экспортируемых описаний ARXML:
<MAX-NUMBER-OF-ELEMENTS BINDING-TIME="PRE-COMPILE-TIME"> <SYSC-REF DEST="SW-SYSTEMCONST">/varDim_pkg/dt/SystemConstants/SymDimA</SYSC-REF> </MAX-NUMBER-OF-ELEMENTS>
Позвольте символьную спецификацию размерности | AUTOSAR.Parameter