Сконфигурируйте варианты для размеров массивов 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 представляет различный размер массивов.

 Пример 3. Сгенерированный код C
/* SignalConversion: '<Root>/ConcatBufferAtVector ConcatenateIn1' */
  for (i = 0; i < Rte_SysCon_SymDimA; i++) {
    rtb_VectorConcatenate[i] = tmp[i];
 Пример 4. Экспортируемый код 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>

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

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

Больше о