Скалярная замена оператора кода

В этом примере показано, как задать заменяющее отображение кода для скалярного оператора. Пример задает отображение для + (сложение) оператор программно. В качестве альтернативы можно использовать Code Replacement Tool, чтобы задать то же отображение.

  1. Создайте табличный файл определения, который содержит функциональное определение. Например:

    function hTable = crl_table_add_uint8
    
  2. В теле функции составьте таблицу путем вызова функционального RTW.TflTable.

    hTable = RTW.TflTable;
    
  3. Создайте запись для отображения оператора с вызовом RTW.TflCOperationEntry функция.

    % Create operation entry 
    op_entry = RTW.TflCOperationEntry;
  4. Параметры записи функции множества с вызовом setTflCOperationEntryParameters функция.

    % Define addition operation of built-in uint8 data type
    % Saturation on, Rounding unspecified
    setTflCOperationEntryParameters(op_entry, ...
                        'Key',                      'RTW_OP_ADD', ...
                        'Priority',                 90, ...
                        'SaturationMode',           'RTW_SATURATE_ON_OVERFLOW', ...
                        'RoundingModes',            {'RTW_ROUND_UNSPECIFIED'}, ...
                        'ImplementationName',       'u8_add_u8_u8', ...
                        'ImplementationHeaderFile', 'u8_add_u8_u8.h', ...
                        'ImplementationSourceFile', 'u8_add_u8_u8.c' );
    
  5. Создайте концептуальные аргументы y1, u1, и u2. Существует несколько способов настроить концептуальные аргументы. Этот пример использует вызовы getTflArgFromString и addConceptualArg функции, чтобы создать и добавить аргументы.

    arg = getTflArgFromString(hTable, 'y1', 'uint8');
    arg.IOType = 'RTW_IO_OUTPUT';
    addConceptualArg(op_entry, arg);
    
    arg = getTflArgFromString(hTable, 'u1', 'uint8');
    addConceptualArg(op_entry, arg );
    
    arg = getTflArgFromString(hTable, 'u2', 'uint8');
    addConceptualArg(op_entry, arg );
    
  6. Скопируйте концептуальные аргументы в аргументы реализации. Существует несколько способов настроить аргументы реализации. Этот пример использует вызов copyConceptualArgsToImplementation функция, чтобы создать и добавить аргументы реализации в запись путем копирования соответствия с концептуальными аргументами.

    copyConceptualArgsToImplementation(op_entry);
  7. Добавьте запись в заменяющую таблицу кода с вызовом addEntry функция.

    addEntry(hTable, op_entry);
  8. Сохраните табличный файл определения. Используйте имя табличной функции определения, чтобы назвать файл.

Протестировать этот пример:

  1. Укажите заменяющее отображение кода.

  2. Создайте модель, которая включает блок Add, такой как эта модель.

  3. Сконфигурируйте модель со следующими настройками:

    • На панели Solver выберите решатель фиксированного шага.

    • На панели Code Generation выберите ERT-based system target file.

    • На Code Generation> панель Interface, выберите заменяющую библиотеку кода, которая содержит вашу запись операции сложения.

  4. Сгенерируйте код и отчет генерации кода.

  5. Рассмотрите замены кода.

Похожие темы