Помощник по созданию кода проверяет модель в соответствии с заданными целями. Если предопределенные цели эффективности, прослеживаемости, безопасности и отладки не соответствуют вашим требованиям, можно создать пользовательские цели.
Для создания пользовательских целей:
Создайте цель и добавьте параметры и проверки к этой новой цели.
Создайте цель на основе существующей цели, затем добавьте, измените и удалите параметры и проверки в этой новой цели.
При создании пользовательской цели задаются значения параметров конфигурации, которые проверяет помощник по созданию кода. Можно использовать следующие методы:
addParam - Добавьте параметры и укажите значения, которые помощник по генерации кода проверяет в разделе Проверка настроек конфигурации модели в соответствии с целями создания кода.
modifyInheritedParam - Изменение унаследованных значений параметров, которые помощник по генерации кода просматривает в разделе Проверка настроек конфигурации модели в соответствии с целями создания кода.
removeInheritedParam - удаление унаследованных параметров из новой цели, основанной на существующей цели. При выборе нескольких целей, если этот параметр включен в состав другой выбранной цели, помощник по генерации кода проверяет значение параметра в разделе Проверка настроек конфигурации модели относительно целей генерации кода.
Цели включают в себя проверку по умолчанию параметров конфигурации модели по отношению к целям создания кода. При создании пользовательской цели указывается список дополнительных проверок, связанных с пользовательской целью. Можно использовать следующие методы:
addCheck - Добавление чеков в помощник по созданию кода. При выборе пользовательской цели помощник по созданию кода отображает проверку, если не указан дополнительный объект с более высоким приоритетом, исключающий проверку.
Например, добавьте проверку в помощник по созданию кода, чтобы включить пользовательскую проверку в процесс автоматической проверки модели.
excludeCheck - Исключить проверки из помощника по созданию кода. При выборе нескольких целей при указании дополнительной цели, включающей эту проверку в качестве цели с более высоким приоритетом, эта проверка отображается помощником по созданию кода.
Например, исключите чек из помощника по созданию кода, если обработка чека занимает много времени.
removeInheritedCheck - удаление унаследованных проверок из новой цели, основанной на существующей цели. Если при выборе нескольких целей эта проверка включена в состав другой выбранной цели, то эта проверка отображается помощником по созданию кода.
Например, удалите унаследованный чек, а не исключите чек, если для обработки чека требуется много времени, но чек важен для другой цели.
При создании новой цели на основе существующей цели можно определить, какие проверки и параметры содержит существующая цель. Помощник по созданию кода содержит список проверок в каждой цели.
Например, Efficiency цель включает в себя проверки, которые можно увидеть в помощнике по созданию кода.
Откройте окно rtwdemo_rtwecintro модель.
Укажите целевой объект на основе ERT.
На вкладке Код C щелкните Помощник по коду C/C + + .
В окне выбора системы выберите модель или подсистему, которую требуется просмотреть, и нажмите кнопку ОК.
На панели «Цели создания кода» помощника по созданию кода выберите цели создания кода. При выборе целей на левой панели помощник по созданию кода обновляет список проверок, выполняемых в модели. В этом примере выберите Execution efficiency. В разделе Доступные цели дважды щелкните Execution efficiency. Execution efficiency добавляется в раздел Выбранные цели - приоритет.
На левой панели помощник по созданию кода перечисляет проверки для Execution efficiency цель. Первая проверка, Проверка настроек конфигурации модели по целям создания кода, перечисляет параметры и значения, указанные целью. Например, помощник по созданию кода отображает список параметров и рекомендуемых значений в Execution efficiency цель. Для просмотра списка параметров и значений:
Выполните проверку настроек конфигурации модели по целям создания кода.
Щелкните Изменить параметры (Modify Parameters).
Повторите проверку.
В результатах проверки помощник по созданию кода отображает список параметров и рекомендуемых значений для Execution efficiency цель.

Чтобы создать пользовательскую цель, выполните следующие действия.
Создание sl_customization.m файл.
Задание пользовательских целей в одном sl_customization.m только файл или программное обеспечение генерирует ошибку. Эта проблема актуальна, даже если у вас несколько sl_customization.m файл по пути MATLAB ®.
За исключением папка, не размещать matlabroot/worksl_customization.m файл в корневой папке MATLAB или ее подпапках. В противном случае программа игнорирует настройки, указанные в файле.
Создание sl_customization функция, которая принимает один аргумент. Когда программное обеспечение вызывает функцию, значением этого аргумента является менеджер настройки Simulink ®. В функции:
Чтобы создать дескриптор цели создания кода, используйте ObjectiveCustomizer конструктор.
Чтобы зарегистрировать функцию обратного вызова для пользовательских целей, используйте ObjectiveCustomizer.addCallbackObjFcn способ.
Для добавления вызова для выполнения функции обратного вызова используйте ObjectiveCustomizer.callbackFcn способ.
Например:
function sl_customization(cm) %SL_CUSTOMIZATION objective customization callback objCustomizer = cm.ObjectiveCustomizer; index = objCustomizer.addCallbackObjFcn(@addObjectives); objCustomizer.callbackFcn{index}(); end
Создайте функцию обратного вызова MATLAB, которая:
Создает целевые объекты создания кода с помощью rtw.codegenObjectives.Objective конструктор.
Добавление, изменение и удаление параметров конфигурации для каждой цели с помощью addParam, modifyInheritedParam, и removeInheritedParam методы.
Включает и исключает проверки для каждой цели с помощью addCheck, excludeCheck, и removeInheritedCheck методы.
Регистрирует цели с помощью register способ.
В следующем примере показано, как создать цель Reduce RAM Example. Reduce RAM Example включает пять параметров и три проверки, которые проверяет помощник по созданию кода.
function addObjectives % Create the custom objective obj = rtw.codegenObjectives.Objective('ex_ram_1'); setObjectiveName(obj, 'Reduce RAM Example'); % Add parameters to the objective addParam(obj, 'DefaultParameterBehavior', 'Inlined'); addParam(obj, 'BooleanDataType', 'on'); addParam(obj, 'OptimizeBlockIOStorage', 'on'); addParam(obj, 'EnhancedBackFolding', 'on'); addParam(obj, 'BooleansAsBitfields', 'on'); % Add additional checks to the objective % The Code Generation Advisor automatically includes 'Check model % configuration settings against code generation objectives' in every % objective. addCheck(obj, 'mathworks.design.UnconnectedLinesPorts'); addCheck(obj, 'mathworks.design.Update'); %Register the objective register(obj); end
В следующем примере показано, как создать цель My Traceability Example на основе существующей цели отслеживания. Пользовательская цель изменяет, удаляет и добавляет параметры, которые просматривает помощник по созданию кода. Он также добавляет и удаляет чеки из помощника по созданию кода.
function addObjectives % Create the custom objective from an existing objective obj = rtw.codegenObjectives.Objective('ex_my_trace_1', 'Traceability'); setObjectiveName(obj, 'My Traceability Example'); % Modify parameters in the objective modifyInheritedParam(obj, 'GenerateTraceReportSf', 'Off'); removeInheritedParam(obj, 'ConditionallyExecuteInputs'); addParam(obj, 'MatFileLogging', 'On'); % Modify checks in the objective addCheck(obj, 'mathworks.codegen.SWEnvironmentSpec'); removeInheritedCheck(obj, 'mathworks.codegen.CodeInstrumentation'); %Register the objective register(obj); end
Если ранее был открыт помощник по созданию кода, закройте модель, из которой был открыт помощник по созданию кода.
Обновить диспетчер настроек. В командной строке MATLAB введите sl_refresh_customizations.
Откройте модель и просмотрите новые цели.