Верификация допущений генерации кода

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

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

  • Субоптимальный код

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

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

  • Правильность настроек. Для примера - целочисленная длина бита в Number of bits: int поле.

  • Оптимизированы ли настройки. Для примера округление знакового целого деления в поле Signed integer division rounds to.

Симуляция генерирует страницу Coder Assumptions для отчета генерации кода, которая предоставляет список:

  • Проверенные допущения генерации кода

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

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

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

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

Number of bits за:

  • char (ProdBitPerChar)

  • short (ProdBitPerShort)

  • int (ProdBitPerInt)

  • long (ProdBitPerLong)

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

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

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

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

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

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

Number of bits за:

  • char (ProdBitPerChar)

  • short (ProdBitPerShort)

  • int (ProdBitPerInt)

  • long (ProdBitPerLong)

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

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

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

  • Целевой компьютер не поддерживает long long.

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

Размер:

  • float

  • double

Вы не можете настроить эти размеры типов данных через панель Hardware Implementation. Проверка выполняется только в том случае, если выбран Support: floating-point numbers.

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

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

Number of bits за:

  • pointer (ProdBitPerPointer)

  • size_t (ProdBitPerSizeT)

  • ptrdiff_t (ProdBitPerPtrDiffT)

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

Signed integer division rounds to (ProdIntDivRoundTo) установка

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

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

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

Byte ordering (ProdEndianess) установка

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

Shift right on a signed integer as arithmetic shift (ProdShiftRightIntArith) установка

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

Remove root level I/O zero initialization (ZeroExternalMemoryAtStartup) установка

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

Remove internal data zero initialization (ZeroInternalMemoryAtStartup) установка

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

Use dynamic memory allocation for model initialization (GenerateAllocFcn) установка

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

Simulation behavior for denormal numbers (DenormalBehavior) установка

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

См. также

Похожие темы