setTflCFunctionEntryParameters

Установите указанные параметры для ввода функции в таблицу замещения кода

Описание

пример

setTflCFunctionEntryParameters(hEntry,varargin) устанавливает заданные параметры для записи функции в таблице замещения кода.

Примеры

свернуть все

В этом примере показано, как использовать setTflCFunctionEntryParameters функция, чтобы задать заданные параметры для записи функции замены кода для sqrt.

fcn_entry = RTW.TflCFunctionEntry;
fcn_entry.setTflCFunctionEntryParameters( ...
                               'Key',                      'sqrt', ...
                               'Priority',                 100, ...
                               'ImplementationName',       'sqrt', ...
                               'ImplementationHeaderFile', '<math.h>' );

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

свернуть все

The hEntry является указателем на функцию замещения кода, ранее возвращенную hEntry = RTW.TflCFunctionEntry или hEntry = MyCustomFunctionEntry, где MyCustomFunctionEntry - класс, производный от RTW.TflCFunctionEntry.

Пример: fcn_entry

Пример: 'Key','sqrt'

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Key','sqrt'

The AcceptExprInput значение помечает генератор кода, что функция реализации, описанная этой записью, принимает входы выражения. Значение по умолчанию true если ImplType равен FCN_IMPL_FUNCT и false если ImplType равен FCN_IMPL_MACRO.

Если значение true, входы выражения интегрируются в сгенерированный код в форме, подобной этой форме:

 rtY.Out1 = mySin(rtU.In1 + rtU.In2);

Если значение falseвременная переменная генерируется для входного выражения:

real_T rtb_Sum;

rtb_Sum = rtU.In1 + rtU.In2;
rtY.Out1 = mySin(rtb_Sum);

Пример: 'AcceptExprInput',true

The AdditionalHeaderFiles значение задает дополнительные файлы заголовков для записи таблицы замещения кода. Векторы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в MATLAB® рабочая область или как функция MATLAB в пути поиска файлов, который возвращает вектор символов.

Пример: 'AdditionalHeaderFiles',{}

The AdditionalIncludePaths значение задает полный путь к дополнительным путям включения для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'AdditionalIncludePaths',{}

The AdditionalLinkObjs значение задает дополнительные объекты ссылки для записи таблицы замещения кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'AdditionalLinkObjs',{}

The AdditionalLinkObjsPaths значение задает полный путь к дополнительным ссылкам объекта путям для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов. Значение по умолчанию является {}.

Пример: 'AdditionalLinkObjsPaths',{}

The AdditionalSourceFiles значение задает дополнительные исходные файлы для записи таблицы замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'AdditionalSourceFiles',{}

The AdditionalSourcePaths значение задает полный путь к дополнительным исходным путям для записи замены кода. Векторы символов или строковые массивы могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'AdditionalSourcePaths',{}

The AdditionalCompileFlags значение задает дополнительные флаги, необходимые для компиляции исходных файлов, определенных для записи таблицы замещения кода. Значение по умолчанию является {}.

Пример: 'AdditionalCompileFlags',{}

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

Пример: 'AdditionalLinkFlags',{}

The ArrayLayout значение задает порядок элементов массива в памяти, поддерживаемый реализацией замены. По умолчанию реализация замены поддерживает размещение данных основного столбца. Для ROW-MAJOR, реализация замены поддерживает размещение данных основной строки. Для COLUMN_AND_ROW, реализация замены поддерживает размещения данных основной и основной строк.

Пример: 'ArrayLayout','ROW_MAJOR'

The EntryInfoAlgorithm значение задает расчет или приближение метод, сконфигурированный для указанной математической функции, который должен совпадать порядок чтобы произошла замена функции. Библиотеки замены кода поддерживают замену функции на основе расчетов или метода приближения для математических функций rSqrt, sin, cos, и sincos. Допустимые аргументы для каждой поддерживаемой функции перечислены в таблице.

ФункцияАргументЗначение

rSqrt

RTW_DEFAULT

Соответствуйте методу расчета по умолчанию, Exact

RTW_NEWTON_RAPHSON

Соответствовать Newton-Raphson метод расчетов

RTW_UNSPECIFIED

Соответствовать методу расчета

sin

cos

sincos

RTW_CORDIC

Соответствовать CORDIC метод приближения

RTW_DEFAULT

Совпадайте с методом приближения по умолчанию, None

RTW_UNSPECIFIED

Совпадает с методом приближения

Пример: 'EntryInfoAlgorithm','RTW_DEFAULT'

The GenCallback задает коллбэк, который следует за генерацией кода. Если вы задаете 'RTW.copyFileToBuildDir'и если эта запись функции совпадает и используется, генератор кода вызывает функцию RTW.copyFileToBuildDir после генерации кода. Эта функция обратного вызова копирует дополнительные файлы заголовка, источника или объекта, которые вы указали для этой записи функции, в папку сборки.

Пример: 'GenCallback',''

The ImplementationHeaderFile значение задает имя файла заголовка, который объявляет функцию реализации, например '<math.h>'. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'ImplementationHeaderFile',''

The ImplementationHeaderPath значение задает полный путь к файлу заголовка реализации. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'ImplementationHeaderPath',''

The ImplementationName значение задает имя функции реализации, например 'sqrt', который может соответствовать или отличаться от Key имя.

Пример: 'ImplementationName',''

The ImplementationSourceFile значение задает имя исходного файла реализации. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'ImplementationSourceFile',''

The ImplementationSourcePath значение задает полный путь к исходному файлу реализации. Вектор символов или строковый скаляр могут включать лексемы. Для примера в лексему $mytoken$, mytoken - переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB в путь поиска файлов, которая возвращает вектор символов.

Пример: 'ImplementationSourcePath',''

Использование FCN_IMPL_FUNCT для функции или FCN_IMPL_MACRO для макроса.

Пример: 'ImplType','FCN_IMPL_FUNCT'

Значение Key задает имя функции. Имя должно совпадать с именем функции, указанным в коде, который можно заменить из кода MATLAB или кода, который можно заменить из моделей Simulink.

Пример: 'Key','sqrt'

The Priority значение задает приоритет поиска для записи функции относительно других записей с тем же именем функции и списком концептуальных аргументов в этой таблице. Самый высокий приоритет - 0, а самый низкий - 100. Если таблица предоставляет две реализации для функции, реализация с более высоким приоритетом затеняет ту, которая имеет более низкий приоритет.

Пример: 'Priority',100

The RoundingModes значение задает один или несколько режимов округления, поддерживаемых функцией реализации.

Пример: 'RoundingModes',{'RTW_ROUND_UNSPECIFIED'}

The SaturationMode значение задает режим насыщения, поддерживаемый функцией реализации.

Пример: 'SaturationMode','RTW_SATURATE_UNSPECIFIED'

The SideEffects значение помечает генератор кода не для того, чтобы оптимизировать функцию реализации, описанную этой записью. Этот параметр применяется к функциям реализации, которые возвращают void но не должны быть оптимизированы, например, memcpy реализация или функция реализации, которая обращается к значениям глобальной памяти. Для этих функций реализации необходимо включить этот параметр и задать значение true.

Пример: 'SideEffects',false

The StoreFcnReturnInLocalVar значение помечает генератор кода, что возврат значение функции реализации, описанное этой записью, должно храниться в локальной переменной независимо от других настроек складывания выражений. Если значение falseдругие настройки складывания выражения определяют, свернуто ли возвращаемое значение. Хранение функции возвращается в локальной переменной может увеличить четкость сгенерированного кода. В этом примере показан код, сгенерированный с сворачиванием выражения:

void sw_step(void)
{
    if (ssub(sadd(sw_U.In1, sw_U.In2), sw_U.In3) <= 
        smul(ssub(sw_U.In4, sw_U.In5),sw_U.In6)) {  
      sw_Y.Out1 = sw_U.In7;  
    } else {
       sw_Y.Out1 = sw_U.In8;  
    }
}

С StoreFcnReturnInLocalVar установлено на true, сгенерированный код потенциально легче понять и отладить:

void sw_step(void)
{  
    real32_T rtb_Switch;  
    real32_T hoistedExpr;
    ......  
    rtb_Switch = sadd(sw_U.In1, sw_U.In2);
    rtb_Switch = ssub(rtb_Switch, sw_U.In3);
    hoistedExpr = ssub(sw_U.In4, sw_U.In5); 
    hoistedExpr = smul(hoistedExpr, sw_U.In6);  
    if (rtb_Switch <= hoistedExpr) {
       sw_Y.Out1 = sw_U.In7;  
    } else { 
       sw_Y.Out1 = sw_U.In8;  
    }
}

Пример: 'StoreFcnReturnInLocalVar',false

Введенный в R2007b