В этом примере показано, как задать заменяющее отображение кода для скалярного оператора. Пример задает отображение для +
(сложение) оператор программно. В качестве альтернативы можно использовать Code Replacement Tool, чтобы задать то же отображение.
Создайте табличный файл определения, который содержит функциональное определение. Например:
function hTable = crl_table_add_uint8
В теле функции составьте таблицу путем вызова функционального RTW.TflTable
.
hTable = RTW.TflTable;
Создайте запись для отображения оператора с вызовом RTW.TflCOperationEntry
функция.
% Create operation entry
op_entry = RTW.TflCOperationEntry;
Параметры записи функции множества с вызовом 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' );
Создайте концептуальные аргументы 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 );
Скопируйте концептуальные аргументы в аргументы реализации. Существует несколько способов настроить аргументы реализации. Этот пример использует вызов copyConceptualArgsToImplementation
функция, чтобы создать и добавить аргументы реализации в запись путем копирования соответствия с концептуальными аргументами.
copyConceptualArgsToImplementation(op_entry);
Добавьте запись в заменяющую таблицу кода с вызовом addEntry
функция.
addEntry(hTable, op_entry);
Сохраните табличный файл определения. Используйте имя табличной функции определения, чтобы назвать файл.
Протестировать этот пример:
Укажите заменяющее отображение кода.
Создайте модель, которая включает блок Add, такой как эта модель.
Сконфигурируйте модель со следующими настройками:
На панели Solver выберите решатель фиксированного шага.
На панели Code Generation выберите ERT-based system target file.
На Code Generation> панель Interface, выберите заменяющую библиотеку кода, которая содержит вашу запись операции сложения.
Сгенерируйте код и отчет генерации кода.
Рассмотрите замены кода.