При проверке сгенерированного кода на ошибки или ошибки времени выполнения можно выбрать, выполнять ли проверку на все значения входа или определенной области значений значений. Можно извлечь вход области значений из 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 | Да | Да |