setTflCFunctionEntryParameters

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

Описание

пример

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

Примеры

свернуть все

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

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

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

свернуть все

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

Пример: fcn_entry

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EntryInfoAlgorithm значение задает метод расчета или приближения, сконфигурированный для заданной математической функции, которая должна быть соответствующей для функциональной замены, чтобы произойти. Заменяющая замена функции поддержки библиотек кода на основе метода расчета или приближения для математических функций rSqrt, sinпотому что, и 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'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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