Сконфигурируйте варианты размерности для размеров массивов AUTOSAR

Компоненты программного обеспечения 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>

Смотрите также

|

Связанные примеры

Больше о