Внешние ограничения на полипространственный анализ сгенерированного кода

При проверке сгенерированного кода на ошибки или ошибки времени выполнения можно выбрать, выполнять ли проверку на все значения входа или определенной области значений значений. Можно извлечь вход области значений из Simulink® модель.

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

Извлечение внешних ограничений из модели

Рассмотрим эту простую модель с Inport (Simulink) блоком, Gain (Simulink) блоком и Outport (Simulink) блоком. Предположим, что сигнал в блоках Inport и Outport и параметр усиления блока Gain имеют минимальное и максимальное значение.

Можно проанализировать код, сгенерированный из этой модели, с этими минимальными и максимальными значениями. На вкладке Apps выберите Polyspace Code Verifier. Затем на вкладке Polyspace выберите Settings. Задайте следующие параметры конфигурации:

  • Вход: Выберите Use specified minimum and maximum values. Анализ Code Prover проверяет сгенерированный код в заданной области значений из блока Inport. Анализ Bug Finder использует эту информацию для исключения ложных срабатываний.

    По умолчанию: Эта опция выбрана.

  • Настраиваемые параметры: Выберите Use specified minimum and maximum values.

    По умолчанию: Эта опция не выбрана. В анализе используется фиксированное значение усиления блока Gain (значение 2 в примере).

    Чтобы анализ рассматривал область значений вместо фиксированного значения, параметры должны быть настраиваемыми и не встроенными. Смотрите Поведение параметра по умолчанию (Simulink Coder).

  • Выход: Выберите Verify outputs are within minimum and maximum values. Анализ Кода Prover создает красную проверку, если выходы превышают область значений, заданную в блоке Outport. См. также Correctness condition.

    По умолчанию: Эта опция не выбрана. Анализ Code Prover не проверяет выходные значения.

После анализа, чтобы проверить, используется ли ограниченное значение области значений, смотрите один из следующих файлов:

  • Спецификация ограничений XML файла modelname_drs.xml в папке results_<reservedrangesplaceholder0 >\modelname.

  • Polyspace® файл проекта modelname.prpsj в папке results_<reservedrangesplaceholder0 >.

    Откройте этот файл в пользовательском интерфейсе Polyspace. В строении проекта см. извлеченные ограничения, заданные для опции Constraint setup (-data-range-specifications).

Классы памяти, поддерживаемые для извлечения ограничений

Чтобы разрешить извлечение ограничений из модели Simulink, сигналы и параметры должны иметь типы данных в определенных классах памяти. Для получения дополнительной информации о классах памяти см. Выбор класса памяти для управления представлением данных в сгенерированном коде (Embedded Coder).

Общие классы памяти

Класс памятиПоддерживаемые ограничения по сигналуПоддерживаемые ограничения параметров
AutoДа

Да

ExportedGlobalДаДа
ImportedExternДаДа
ImportedExternPointerДаДа
Model defaultДаДа

Другие классы памяти

Класс памятиПоддерживаемые ограничения по сигналуПоддерживаемые ограничения параметров
BitFieldДаДа
CompilerFlagНетНет
ConstНетДа
ConstVolatileНетДа
DefineНетНет
ExportToFileДаДа
FileScopeДаНет
GetSetНетНет
ImportedDefineНетНет
ImportFromFileНетНет
StructНетНет
VolatileДаДа

Похожие темы