Установите заданные параметры для семафорной записи в заменяющей таблице кода
В этом примере показано, как использовать 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 указатель на заменяющую запись семафора библиотеки кода, ранее возвращенную .hEntry = RTW.TflCSemaphoreEntry;
Пример: sem_entry
varargin — Пары "имя-значение" аргументов для функциональной записиПример: 'Key','RTW_SEM_INIT'
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Key','RTW_SEM_INIT''AcceptExprInput' — Задает, принимает ли функция реализации входные параметры выраженияtrue | falseAcceptExprInput значение отмечает генератор кода, что функция реализации, описанная этой записью, принимает входные параметры выражения. Значением по умолчанию является 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' — Задает дополнительные заголовочные файлы для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalHeaderFiles значение задает дополнительные заголовочные файлы для заменяющей записи таблицы кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочей области MATLAB® или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalHeaderFiles',{}
'AdditionalIncludePaths' — Задает дополнительный, включают пути для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalIncludePaths значение указывает, что полный путь дополнительных включает пути для заменяющей записи кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalIncludePaths',{}
'AdditionalLinkObjs' — Задает дополнительные объекты ссылки для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalLinkObjs значение задает дополнительные объекты ссылки для заменяющей записи таблицы кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalLinkObjs',{}
'AdditionalLinkObjsPaths' — Задает дополнительные пути к объекту ссылки для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalLinkObjsPaths значение задает полный путь дополнительных путей к объекту ссылки для заменяющей записи кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalLinkObjsPaths',{}
'AdditionalSourceFiles' — задает дополнительные исходные файлы для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalSourceFiles значение задает дополнительные исходные файлы для заменяющей записи таблицы кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'AdditionalSourceFiles',{}
'AdditionalSourcePaths' — Задает дополнительные исходные пути для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalSourcePaths значение задает полный путь дополнительных исходных путей для заменяющей записи кода. Векторы символов или массив строк могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов. Значением по умолчанию является {}.
Пример: 'AdditionalSourcePaths',{}
'AdditionalCompileFlags' — Задает дополнительные флаги компилятора для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalCompileFlags значение задает дополнительные флаги, требуемые скомпилировать исходные файлы, заданные для заменяющей записи таблицы кода.
Пример: 'AdditionalCompileFlags',{}
'AdditionalLinkFlags' — Задает дополнительные флаги компоновщика для записи таблицы{} (значение по умолчанию) | массив векторов символов | массив строкAdditionalLinkFlags значение задает дополнительные флаги, требуемые соединить скомпилированные файлы для заменяющей записи таблицы кода.
Пример: 'AdditionalLinkFlags',{}
'GenCallback' — Задает коллбэк, который следует за генерацией кода'' (значение по умолчанию) | 'RTW.copyFileToBuildDir'GenCallback задает коллбэк, который следует за генерацией кода. Если вы задаете 'RTW.copyFileToBuildDir', и если эта функциональная запись является соответствующей и используется, функциональный RTW.copyFileToBuildDir называется после генерации кода. Эта функция обратного вызова копирует дополнительный заголовок, источник или объектные файлы, которые вы задали для этой функциональной записи в папку сборки.
Пример: 'GenCallback',''
'ImplementationHeaderFile' — Задает имя заголовочного файла, который объявляет функцию реализации'' (значение по умолчанию) | вектор символов | строковый скалярImplementationHeaderFile значение задает имя заголовочного файла, который объявляет функцию реализации. Вектор символов или строковый скаляр могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'ImplementationHeaderFile','<math.h>'
'ImplementationHeaderPath' — Задает путь к заголовочному файлу реализации'' (значение по умолчанию) | вектор символов | строковый скалярImplementationHeaderPath значение задает полный путь к заголовочному файлу реализации. Вектор символов или строковый скаляр могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'ImplementationHeaderPath',''
'ImplementationName' — Задает имя функции реализации'' (значение по умолчанию) | вектор символов | строковый скалярImplementationName значение задает имя функции реализации, которая может соответствовать или отличаться от Key имя.
Пример: 'ImplementationName','sqrt'
'ImplementationSourceFile' — задает имя исходного файла реализации'' (значение по умолчанию) | вектор символов | строковый скалярImplementationSourceFile значение задает имя исходного файла реализации. Вектор символов или строковый скаляр могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'ImplementationSourceFile',''
'ImplementationSourcePath' — Задает путь к исходному файлу реализации'' (значение по умолчанию) | вектор символов | строковый скалярImplementationSourcePath значение задает полный путь к исходному файлу реализации. Вектор символов или строковый скаляр могут включать лексемы. Например, в маркерном $mytoken$, mytoken переменная, заданная как вектор символов или строковый скаляр в рабочем пространстве MATLAB или как функция MATLAB на пути поиска файлов, который возвращает вектор символов.
Пример: 'ImplementationSourcePath',''
'ImplType' — Задает тип записи таблицы'FCN_IMPL_FUNCT' (значение по умолчанию) | 'FCN_IMPL_MACRO'ImplType значение задает тип записи таблицы. Используйте FCN_IMPL_FUNCT для функции или FCN_IMPL_MACRO для макроса.
Пример: 'ImplType','FCN_IMPL_FUNCT'
'Key' — Задает ключ для оператора, чтобы заменитьKey значение задает ключ для оператора, чтобы заменить. Имя должно совпадать с именем функции, перечисленным в Коде, который Можно Заменить из кода MATLAB или Кода, который Можно Заменить Из Моделей Simulink.
Пример: 'Key','RTW_OP_ADD'
'Priority' — Задает поисковый приоритет функциональной записи (значение по умолчанию) | целочисленное значение 0.. 100Priority значение задает поисковый приоритет функциональной записи относительно других записей того же имени функции и концептуального списка аргументов в рамках этой таблицы. Самый высокий приоритет 0, и самый низкий приоритет равняется 100. Значение по умолчанию равняется 100. Если таблица обеспечивает две реализации для функции, реализацию с более высокими приоритетными тенями та с более низким приоритетом.
Пример: 'Priority',100
'RoundingModes' — Задает округление режимов, поддержанных функцией реализации'RTW_ROUND_UNSPECIFIED' (значение по умолчанию) | 'RTW_ROUND_FLOOR' | 'RTW_ROUND_CEILING' | 'RTW_ROUND_ZERO' | 'RTW_ROUND_NEAREST' | 'RTW_ROUND_NEAREST_ML' | 'RTW_ROUND_CONV' | 'RTW_ROUND_SIMPLEST' | массив векторов символов | массив строкRoundingModes значение задает один или несколько округляющихся режимов, поддержанных функцией реализации.
Пример: 'RoundingModes',{'RTW_ROUND_UNSPECIFIED'}
'SaturationMode' — задает режим насыщения, поддержанный функцией реализации'RTW_SATURATE_UNSPECIFIED' (значение по умолчанию) | 'RTW_SATURATE_ON_OVERFLOW' | 'RTW_WRAP_ON_OVERFLOW' | вектор символов | строковый скалярSaturationMode значение задает режим насыщения, поддержанный функцией реализации.
Пример: 'SaturationMode','RTW_SATURATE_UNSPECIFIED'
'SideEffects' — Задает, попытаться ли оптимизировать далеко функцию реализацииfalse (значение по умолчанию) | trueSideEffects значение отмечает генератор кода, чтобы не оптимизировать далеко функцию реализации, описанную этой записью. Этот параметр применяется к функциям реализации, которые возвращают void но не должны быть оптимизированы далеко, такие как a memcpy реализация или функция реализации та глобальная память доступов значения. Для тех реализация функционирует только, необходимо включать этот параметр и задать значение true.
Пример: 'SideEffects',false
'StoreFcnReturnInLocalVar' — Задает, сохранить ли функцию реализации невнимательные настройки сворачивания выраженияfalse (значение по умолчанию) | trueStoreFcnReturnInLocalVar значение отмечает генератор кода, что возвращаемое значение функции реализации, описанной этой записью, должно храниться в локальной переменной независимо от других настроек сворачивания выражения. Если значением является 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
addAdditionalHeaderFile | addAdditionalIncludePath | addAdditionalLinkObj | addAdditionalLinkObjPath | addAdditionalSourceFile | addAdditionalSourcepath
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.