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

Компоненты программного обеспечения AUTOSAR могут гибко задать размерности элемента AUTOSAR, такие как порт, при помощи символьной ссылки на постоянную систему. Постоянная система задает размер массивов типа данных порта. К элементам модели AUTOSAR с различными размерами массивов в Simulink®:

  • Создайте блоки, которые представляют элементы AUTOSAR.

  • Чтобы представлять значения размера массивов, добавьте AUTOSAR.Parameter объекты данных с классом памяти SystemConstant.

  • Чтобы задать размер массивов для элемента AUTOSAR, сошлитесь на AUTOSAR.Parameter объект данных.

С различными размерами массивов можно изменить значения размера массивов в системных константах между симуляциями модели, не регенерируя код для симуляции. Когда вы создаете модель, сгенерированный C и код ARXML содержат соответствие символов различным размерам массивов.

Предположим, что вы создаете импорт Simulink In1 представлять порт получателя AUTOSAR с различным размером массивов.

Смоделировать систему AUTOSAR, постоянную, который задает размерности In1, создайте AUTOSAR.Parameter объект данных, SymDimA, с классом памяти SystemConstant.

SymDimA = AUTOSAR.Parameter;
SymDimA.CoderInfo.StorageClass = 'custom';
SymDimA.CoderInfo.CustomStorageClass = 'SystemConstant';
SymDimA.DataType = 'uint8';
SymDimA.Value = 5;

В диалоговом окне для блока In1 импорта, введите название параметра, SymDimA, в поле Port dimensions.

Когда вы генерируете код для модели, имени постоянной системы, SymDimA, кажется, в C и коде ARXML представляет различный размер массивов. Вот выборка сгенерированного кода C:

/* SignalConversion: '<Root>/ConcatBufferAtVector ConcatenateIn1' */
  for (i = 0; i < Rte_SysCon_SymDimA; i++) {
    rtb_VectorConcatenate[i] = tmp[i];

Вот выборка экспортируемых описаний ARXML:

<MAX-NUMBER-OF-ELEMENTS BINDING-TIME="PRE-COMPILE-TIME">
    <SYSC-REF DEST="SW-SYSTEMCONST">/pkg/dt/SC/SymDimA</SYSC-REF>
</MAX-NUMBER-OF-ELEMENTS>

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

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

Больше о