Генератор кода реализует предположения, которые зависят, например, на настройках аппаратной реализации для вашей модели. Важно проверять, что предположения допустимы для вашего целевого компьютера. Используйте функцию buildStandaloneCoderAssumptions
, чтобы создать приложение, которое выполняет проверки предположения на вашем целевом компьютере.
Когда вы конфигурируете свою модель, попытайтесь задать аппаратную реализацию и настройки конфигурации сборки, которые совпадают с вашим целевым компьютером. Затем к предположениям генератора контрольного кода для вашего целевого компьютера используйте этот рабочий процесс:
С набором GenerateReport
к 'on'
, сборка (Ctrl+B) ваша модель.
Чтобы просмотреть список предположений генератора кода, что можно проверять, откройте отчет генерации кода и щелкните по ссылке Coder Assumptions.
Для получения дополнительной информации см. Список Предположений Кодера.
Запустите buildStandaloneCoderAssumptions
, который использует сгенерированный код в папке сборки, чтобы создать приложение, которое осуществляет проверки предположения генерации кода.
Загрузите приложение на целевой компьютер или целевое окружение, и затем запустите приложение.
В то время как выполнение приложения, используйте отладчик, чтобы просмотреть результаты проверки, которые находятся в структуре данных.
Если целевой компьютер является, например, вашим компьютером Windows®development, можно использовать Microsoft® Visual Studio®, чтобы запустить и отладить приложение:
Чтобы открыть модель, в Командном окне, вводят rtwdemo_sil_topmodel
.
На Configuration Parameters> панель Hardware Implementation, задайте настройки, чтобы совпадать с целевым компьютером. Например, для 64-битного компьютера Windows задают эти настройки:
Device vendor – Intel
Device type – x86-64 (Windows 64)
На Configuration Parameters> Code Generation> панель Verification, снимите флажок Enable portable word sizes.
Создайте модель (Ctrl+B).
Чтобы просмотреть список предположений генератора кода, выберите Code> C/C++ Code> Code Generation Report> Open Model Report и щелкните по ссылке Coder Assumptions.
Из Командного окна, в рабочей папке, выполнении:
buildStandaloneCoderAssumptions('rtwdemo_sil_topmodel_ert_rtw')
coderassumptions\standalone
, которая содержит целевое приложение, rtwdemo_sil_topmodel_ca
.Открытый Microsoft Visual Studio и выбирает File> Open> Project/Solution
Используя диалоговое окно Open Project, перейдите к подпапке coderassumptions\standalone
и выберите rtwdemo_sil_topmodel_ca
. Затем нажмите Open.
Выберите File> Open> File. Используя диалоговое окно Open File, выберите coderassumptions\standalone\rtwdemo_sil_topmodel_ca.c
В операторе return
вставьте точку останова.
Выберите Debug> Start Debugging.
Чтобы проверить предположения генератора кода, используйте окно Watch, чтобы осмотреть структуру данных Results
:
В коде rtwdemo_sil_topmodel_ca.c
щелкните правой кнопкой по Results
.
Из контекстного меню выберите Add Watch.
Переменные в структуре данных содержат:
Проверяйте результаты (TestResults
)
Истины целевого компьютера (ActualValues
)
Предположения генератора кода (ExpectedValues
)
Например, если предположение генератора кода для bitsPerChar
точно, вы видите значение CA_PASS
в переменной status
.
Раздел содержимого отчета генерации кода имеет ссылку на страницу Coder Assumptions. Страница предоставляет список:
Предположения генерации кода, что можно проверять
Ожидаемые результаты для проверок предположения
Эта таблица описывает метки, которые вы видите в списке.
Категория | Метка | Предположение можно проверять |
---|---|---|
Настройка Языка C/C++ для Целевого компьютера или Компьютера разработчика |
| Количество битов на |
| Количество битов на | |
| Количество битов на | |
| Количество битов на | |
| Размер | |
| Размер | |
| Количество битов на | |
| Количество битов на | |
| Количество битов на | |
| Порядок байтов ( | |
| Поведение знакового бита ( | |
| Округление поведения для целочисленного деления ( | |
Стандарт Языка C/C++ |
| Нулевая инициализация памяти ( |
Числа с плавающей запятой |
| Обработка номера поднормали сброса к нулю |
| Обработка номера поднормали Denormals-are-zero |
buildStandaloneCoderAssumptions