setTflCSemaphoreEntryParameters

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

Описание

пример

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);

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

свернуть все

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

Пример: sem_entry

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

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

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

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

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 GenCallback задает коллбэк, который следует за генерацией кода. Если вы задаете 'RTW.copyFileToBuildDir', и если эта запись функции совпадает и используется, функция RTW.copyFileToBuildDir вызывается после генерации кода. Эта функция обратного вызова копирует дополнительные файлы заголовка, источника или объекта, которые вы указали для этой записи функции, в папку сборки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2013a