exponenta event banner

Проверка допущений создания кода

В начале моделирования программного обеспечения в цикле (SIL) или процессора в цикле (PIL) программное обеспечение проверяет некоторые настройки параметров конфигурации со ссылкой на целевое оборудование.

Например, в диалоговом окне Параметры конфигурации (Configuration Parameters) параметры аппаратной реализации (Hardware Implementationsettings) задают целевое поведение, которое приводит к реализации неявных допущений в сгенерированном коде. Неправильные настройки могут привести к:

  • Неоптимальный код

  • Сбой выполнения кода, неправильный вывод кода и недетерминированное поведение кода

Программное обеспечение проверяет:

  • Правильность настроек. Например, длина целочисленного бита в поле Число битов: int.

  • Оптимизируются ли параметры. Например, округление целочисленного деления со знаком в поле Целочисленное деление со знаком округляется до поля.

При моделировании создается страница «Предположения кодера» для отчета о создании кода, который содержит список:

  • Проверяемые допущения создания кода

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

Эта таблица показывает, когда выполняются проверки, и результаты, когда предположения создания кода неверны.

СтадияЧто проверено Результат

Препроцессор

Число битов на:

  • char (чар.ProdBitPerChar)

  • короткий (ProdBitPerShort)

  • int (ProdBitPerInt)

  • длинный (ProdBitPerLong)

Если поддержка длинная (ProdLongLongMode) выбран, количество бит на long long

Для каждого типа данных проверка препроцессора не выполняется, если количество битов превышает эти настройки для целевого препроцессора C:

  • Для целочисленной математики со знаком TargetPreprocMaxBitsSint.

  • Для беззнаковой целочисленной математики TargetPreprocMaxBitsUint.

Ошибка, если размеры типов данных для модели и целевого оборудования не совпадают.

Время выполнения

Число битов на:

  • char (чар.ProdBitPerChar)

  • короткий (ProdBitPerShort)

  • int (ProdBitPerInt)

  • длинный (ProdBitPerLong)

Ошибка, если размеры типов данных для модели и целевого оборудования не совпадают.

Если поддержка длинная (ProdLongLongMode) выбран, количество бит на long long

Ошибка, если:

  • Оконечное оборудование не поддерживает long long.

  • Размеры типов данных для модели и целевого оборудования не совпадают.

Размер:

  • float

  • double

Невозможно настроить эти размеры типов данных с помощью панели «Реализация оборудования». Проверка выполняется только в том случае, если выбрано значение Support: floating-point number.

Предупреждение, если размеры типов данных для модели и целевого оборудования не совпадают.

Для double, генерируется предупреждение, если размер целевого типа аппаратных данных не равен 32 или 64 битам.

Число битов на:

  • указатель (ProdBitPerPointer)

  • size_t (ProdBitPerSizeT)

  • ptrdiff_t (ProdBitPerPtrDiffT)

Ошибка, если размеры типов данных для модели и целевого оборудования не совпадают.

Округления целочисленного деления со знаком (ProdIntDivRoundTo) настройка

Предупреждение, если установлен параметр модели Undefined.

Ошибка, если поведение целевого оборудования не определено, а параметр модели не задан Undefined.

Ошибка, если определено поведение целевого оборудования, но параметры модели и целевого оборудования не совпадают.

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

Предупреждение, если параметр имеет значение Unspecified. В противном случае ошибка, если настройки для модели и целевого оборудования не совпадают.

Сдвиг вправо на целое число со знаком как арифметический сдвиг (ProdShiftRightIntArith) настройка

Ошибка, если параметры модели и целевого оборудования не совпадают.

Удалить инициализацию нуля ввода-вывода на корневом уровне (ZeroExternalMemoryAtStartup) настройка

Предупреждение, если ZeroExternalMemoryAtStartup является 'off' и начальные значения глобальных переменных в целевом приложении не равны нулю.

Удалить инициализацию внутреннего нуля данных (ZeroInternalMemoryAtStartup) настройка

Предупреждение, если ZeroInternalMemoryAtStartup является 'off' и начальные значения глобальных переменных в целевом приложении не равны нулю.

Использовать динамическое выделение памяти для инициализации модели (GenerateAllocFcn) настройка

Предупреждение, если GenerateAllocFcn является 'on' и начальные значения динамически выделяемой памяти в целевом приложении не равны нулю.

Поведение моделирования для денормальных чисел (DenormalBehavior) настройка

Ошибка, если поведение для модели и целевого оборудования не совпадает.

См. также

Связанные темы