setTflCSemaphoreEntryParameters

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

Синтаксис

setTflCSemaphoreEntryParameters(hEntry,varargin)

Описание

пример

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

Примеры

свернуть все

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

sem_entry = RTW.TflCSemaphoreEntry;
sem_entry.setTflCSemaphoreEntryParameters( ...
    'Key',                      'RTW_SEM_INIT', ...
    'Priority',                 100, ...
    'ImplementationName',       'mySemCreate', ...
    'ImplementationHeaderFile', 'mySem.h', ...
    'ImplementationSourceFile', 'mySem.c', ...
    'GenCallback',              'RTW.copyFileToBuildDir', ...
    'SideEffects',              true);

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

свернуть все

hEntry является указателем на заменяющую запись семафора библиотеки кода, ранее возвращенную hEntry = RTW.TflCSemaphoreEntry;.

Пример: sem_entry

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

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

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

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

Значение 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',{}

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

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

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

Пример: 'ImplementationHeaderFile','<math.h>'

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

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

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

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

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

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

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

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

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

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

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

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

Значение Priority задает поисковый приоритет функциональной записи относительно других записей того же имени функции и концептуального списка аргументов в рамках этой таблицы. Самый высокий приоритет 0, и самый низкий приоритет равняется 100. Значение по умолчанию равняется 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

Введенный в R2013a