В этом разделе описывается сконфигурировать пользовательский целевой процессор, чтобы поддержать контроль уровня компиляторной оптимизации. Без описанных модификаций вы не можете использовать Configuration Parameters> Code Generation> Build process> параметр Compiler optimization level, чтобы управлять уровнем компиляторной оптимизации для создания сгенерированного кода. Для получения дополнительной информации о контроле уровня компиляторной оптимизации, смотрите уровень Компиляторной оптимизации (Simulink Coder).
Требования для поддержки контроля уровня компиляторной оптимизации следующие:
Цель должна быть выведена от цели GRT или цели ERT.
Системный конечный файл (STF) должен объявить соответствие контроля уровня компиляторной оптимизации, как описано в Объявлении Соответствия Контроля уровня Компиляторной оптимизации.
Целевой make-файл должен соблюдать установку для Compiler optimization level, как описано в Оказании Поддержки Контроля уровня Компиляторной оптимизации в Целевом Make-файле.
Для примера, который показывает, как сконфигурировать пользовательские целевые дополнительные функции, смотрите, Настраивают Системные Конечные файлы (Simulink Coder).
Чтобы объявить соответствие контроля уровня компиляторной оптимизации для вашей цели, необходимо реализовать функцию обратного вызова, которая устанавливает флаг CompOptLevelCompliant
, и затем установите функцию обратного вызова в поле SelectCallback
структуры rtwgensettings
в STF. Функция обратного вызова инициирована каждый раз, когда пользователь выбирает цель в Системном Браузере Конечного файла. Например, следующий код STF устанавливает функцию с именем SelectCallback
custom_select_callback_handler
:
rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';
Аргументы к функции SelectCallback
(hDlg
, hSrc
) являются указателями на частные данные, используемые API-функциями коллбэка. Эти указатели ограничиваются, чтобы использовать в функциях обратного вызова STF. Они должны быть переданы в без изменения.
Ваша функция обратного вызова должна установить флаг CompOptLevelCompliant
можно следующим образом:
slConfigUISetVal(hDlg,hSrc,'CompOptLevelCompliant','on'); slConfigUISetEnabled(hDlg,hSrc,'CompOptLevelCompliant',false);
Для получения дополнительной информации о API коллбэка STF, смотрите slConfigUIGetVal
, slConfigUISetEnabled
и страницы ссылки на функцию slConfigUISetVal
.
Когда целевой параметр конфигурации CompOptLevelCompliant
установлен в on
, параметр Compiler optimization level отображен в панели Code Generation диалогового окна Configuration Parameters для вашей модели.
Как часть поддержки контроля уровня компиляторной оптимизации для вашей цели, необходимо изменить целевой make-файл, чтобы соблюдать установку для Compiler optimization level. Используйте GRT или цель ERT, обеспеченную MathWorks как модель для того, чтобы сделать модификации.