Предположения генерации контрольного кода

Генератор кода реализует предположения, которые зависят, например, на настройках аппаратной реализации для вашей модели. Важно проверять, что предположения допустимы для вашего целевого компьютера. Используйте buildStandaloneCoderAssumptions функция, чтобы создать приложение, которое выполняет проверки предположения на вашем целевом компьютере.

Когда вы конфигурируете свою модель, попытайтесь задать аппаратную реализацию и настройки конфигурации сборки, которые совпадают с вашим целевым компьютером. Затем к предположениям генератора контрольного кода для вашего целевого компьютера используйте этот рабочий процесс:

  1. С GenerateReport установите на 'on', создайте (Ctrl+B) свою модель.

  2. Чтобы просмотреть список предположений генератора кода, что можно проверять, откройте отчет генерации кода и щелкните по ссылке Coder Assumptions.

    Для получения дополнительной информации см. Список Предположений Кодера.

  3. Запустите buildStandaloneCoderAssumptions, который использует сгенерированный код в папке сборки, чтобы создать приложение, которое осуществляет проверки предположения генерации кода.

  4. Загрузите приложение на целевой компьютер или целевое окружение, и затем запустите приложение.

  5. В то время как выполнение приложения, используйте отладчик, чтобы просмотреть результаты проверки, которые находятся в структуре данных.

Предположения генератора контрольного кода для компьютера разработчика

Если целевой компьютер является, например, вашим компьютером Windows®development, можно использовать Microsoft® Visual Studio®, чтобы запустить и отладить приложение:

  1. Чтобы открыть модель, в Командном окне, вводят rtwdemo_sil_topmodel.

  2. В диалоговом окне Model Configuration Parameters, в панели Hardware Implementation, задают настройки, чтобы совпадать с целевым компьютером. Например, для 64-битного компьютера Windows задают эти установки параметров:

    • Device vendorIntel

    • Device typex86-64 (Windows 64)

  3. Параметр конфигурации модели Clear Enable portable word sizes.

  4. Создайте модель (Ctrl+B).

  5. Чтобы просмотреть список предположений генератора кода, откройте отчет генерации кода и щелкните по ссылке Coder Assumptions.

  6. Из Командного окна, в рабочей папке, запуске:

    buildStandaloneCoderAssumptions('rtwdemo_sil_topmodel_ert_rtw')
    В папке сборки функция создает coderassumptions\standalone подпапка, которая содержит целевое приложение, rtwdemo_sil_topmodel_ca.

  7. Открытый Microsoft Visual Studio и выбирает File> Open> Project/Solution

  8. Используя диалоговое окно Open Project, перейдите к coderassumptions\standalone подпапка и выбирает rtwdemo_sil_topmodel_ca. Затем нажмите Open.

  9. Выберите File> Open> File. Используя диалоговое окно Open File, выберите coderassumptions\standalone\rtwdemo_sil_topmodel_ca.c

  10. В return оператор, вставьте точку останова.

  11. Выберите Debug> Start Debugging.

  12. Чтобы проверить предположения генератора кода, используйте окно Watch, чтобы смотреть Results структура данных:

    1. В rtwdemo_sil_topmodel_ca.c код, щелкните правой кнопкой по Results.

    2. Из контекстного меню выберите Add Watch.

Переменные в структуре данных содержат:

  • Проверяйте результаты (TestResults)

  • Истины целевого компьютера (ActualValues)

  • Предположения генератора кода (ExpectedValues)

Например, если предположение генератора кода для bitsPerChar точно, вы видите CA_PASS значение в status переменная.

Список предположений кодера

Раздел содержимого отчета генерации кода имеет ссылку на страницу Coder Assumptions. Страница предоставляет список:

  • Предположения генерации кода, что можно проверять

  • Ожидаемые результаты для проверок предположения

Эта таблица описывает метки, которые вы видите в списке.

КатегорияМеткаПредположение можно проверять
Настройка Языка C/C++ для Целевого компьютера или Компьютера разработчика

BitPerChar

Количество битов на char (ProdBitPerChar)

BitPerShort

Количество битов на short (ProdBitPerShort)

BitPerInt

Количество битов на int (ProdBitPerInt)

BitPerLong

Количество битов на long (ProdBitPerLong)

BitPerFloat

Размер float (Только если PurelyIntegerCode 'off')

BitPerDouble

Размер double (Только если PurelyIntegerCode ‘off’)

BitPerPointer

Количество битов на pointer (ProdBitPerPointer)

BitPerSizeT

Количество битов на size_t (ProdBitPerSizeT)

BitPerPtrDiffT

Количество битов на ptrdiff_t (ProdBitPerPtrDiffT)

Endianess

Порядок байтов (ProdEndianess)

Shift right for signed integer is arithmetic shift

Поведение знакового бита (ProdShiftRightIntArith)

Signed integer division rounds to

Округление поведения для целочисленного деления (ProdIntDivRoundTo)

Стандарт Языка C/C++

Initial value of a global integer variable is zero

Нулевая инициализация памяти (ZeroExternalMemoryAtStartup и ZeroInternalMemoryAtStartup)

Числа с плавающей запятой

Flush-to-zero computed subnormal values (FTZ)

Обработка номера поднормали сброса к нулю

Flush-to-zero incoming subnormal values (DAZ)

Обработка номера поднормали Denormals-are-zero

Смотрите также

Похожие темы