addComplexTypeAlignment

Задайте контур выравнивания комплексного типа

Описание

пример

addComplexTypeAlignment(hDataAlign,baseType,alignment) задает выравнивание контура вещественных и комплексные данные представителей комплексного типа.

Начальный адрес памяти действительной и мнимой части сложных переменных, произведенных генератором кода с заданным типом, кратен заданному контуру выравнивания. Генератор кода заменяет операции в сгенерированном коде, когда оба из этих условий верны:

  • Запись таблицы замещения кода имеет комплексный аргумент с требованием выравнивания данных, которое меньше или равно контуру трассы

  • Запись удовлетворяет всем другим критериям соответствия замещения кода.

Чтобы использовать эту функцию, ваш файл регистрации библиотеки замещения кода должен включать дополнительную информацию о выравнивании данных компилятора, такую как синтаксис выравнивания.

Примеры

свернуть все

В этом примере показано, как задать 16-байтовый контур выравнивания для сложных int8 типы путем добавления addComplexTypeAlignment линия в файле регистрации библиотеки замещения кода.

function rtwTargetInfo(cm)
% rtwTargetInfo function to register a code replacement library (CRL)
% for use with  code generation

  % Register the CRL defined in local function locCrlRegFcn
  cm.registerTargetInfo(@locCrlRegFcn);

end % End of RTWTARGETINFO

% Local function to define a CRL containing crl_table_mmul_4x4_single_align
function thisCrl = locCrlRegFcn

  % create an alignment specification object, assume gcc
  as = RTW.AlignmentSpecification;
  as.AlignmentType = {'DATA_ALIGNMENT_LOCAL_VAR', ...
                      'DATA_ALIGNMENT_GLOBAL_VAR', ...
                      'DATA_ALIGNMENT_STRUCT_FIELD'};
  as.AlignmentSyntaxTemplate = '__attribute__((aligned(%n)))';
  as.SupportedLanguages={'c', 'c++'};

  % add the alignment specification object
  da = RTW.DataAlignment;
  da.addAlignmentSpecification(as);
  da.addComplexTypeAlignment('int8', 16);

  % add the data alignment object to target characteristics
  tc = RTW.TargetCharacteristics;
  tc.DataAlignment = da;

  % Instantiate a CRL registry entry
  thisCrl = RTW.TflRegistry;

  % Define the CRL properties
  thisCrl.Name = 'Data Alignment Example';
  thisCrl.Description = 'Example of replacement with data alignment';
  thisCrl.TableList = {'crl_table_mmul_4x4_single_align'};
    thisCrl.TargetCharacteristics = tc;

end % End of LOCCRLREGFCN

Входные параметры

свернуть все

The hDataAlign - указатель на объект выравнивания данных, ранее возвращенный hDataAlign = RTW.DataAlignment.

Пример: da

The baseType - вектор символов или строковый скаляр, который задает встроенный тип данных, такой как int8 или long.

Пример: 'int8'

The alignment является положительным целым числом, которое является степенью 2 и не превышает 128. Это значение задает контур выравнивания.

Пример: 16

Введенный в R2014a