При проверке кода, созданного из моделей с несовместимостью FATAL, проверка кода завершается. Код, созданный из моделей с несовместимостью FATAL, не может быть проверен.
При проверке кода, созданного из моделей с нефатальной несовместимостью, проверка кода не завершается. Хотя полностью проверить созданный код может оказаться невозможным, проверка кода продолжается. Inspector™ Simulink ® Code может частично проверить созданный код .
Проверки совместимости можно использовать для выявления и устранения фатальной и нефатальной несовместимости.
| Параметр или атрибут | Ограничение | Проверка совместимости |
|---|---|---|
На панели диагностики: панель подключения сигнал шины обрабатывается как вектор (StrictBusMsg) | Необходимо установить значение error (эквивалентно ErrorOnBusTreatedAsVector указано в командной строке). | Проверка параметров диагностики > Проверка сигнала шины, обрабатываемого как векторная настройка |
На панели «Диагностика»: панель «Связность» сигналы, не относящиеся к шине, обрабатываются как сигналы шины (NonBusSignalsTreatedAsBus) | Необходимо установить значение error. | Проверить настройки диагностики > Проверить настройку «Сигналы, не относящиеся к шине, обрабатываемые как сигналы шины» |
На панели «Создание кода: Общие» (Simulink Coder), «Системный целевой файл» (Simulink Coder) (SystemTargetFile) | Необходимо установить значение ert.tlc или системный целевой файл для целевого файла, производного от ERT. | Проверить настройку целевого файла системы |
На панели «Создание кода: Комментарии» (Simulink Coder), «Включить комментарии» (Simulink Coder) (GenerateComments) | Должно быть выбрано (задано значение on). Инспектор кода анализирует автоматически созданные комментарии для получения информации об отслеживании данных модели. | Проверить параметры создания кода > Проверить параметр «Включить комментарии» |
На панели создания кода: панель интерфейса (Simulink Coder), Поддержка: сигналы переменного размера (Embedded Coder) (SupportVariableSizeSignals) | Необходимо очистить (установить значение off). | Проверить настройки генерации кода > Проверить настройку «сигналы переменного размера» |
| Использование времени выборки | Модель не может использовать непрерывное, асинхронное, явное дискретное разбиение, управляемое данными, объединение, экспортированное дискретное или переменное время выборки. | Проверка времени пробы в модели > Проверка времени пробы |
| Явные разделы | Модель не должна содержать явных разделов. | Проверка времени образца в модели > Проверка явных разделов |
| Автоматическое преобразование виртуальной шины в невиртуальную | Автоматическое преобразование между виртуальной и невиртуальной шинами не поддерживается для проверки кода. Он создает скрытый блок преобразования сигнала, который не поддерживается для проверки кода. | Проверка использования шин > Проверка автоматического преобразования между виртуальными шинами в невиртуальные |
| Блокирование операций на шине | Невиртуальный блок не должен работать на виртуальной шине, а блок назначения шины не должен работать на невиртуальной шине. Это ограничение упрощает обработку шины для улучшения прослеживаемости и читаемости сгенерированного кода. | Проверьте использование шин > Убедитесь, что блоки в модели не выполняют неподдерживаемых операций на шине |
| Включить параметр блока | Блоки Enable Port не поддерживаются на корневом уровне модели. | Проверка использования блоков портов и подсистем > Проверка включения блоков портов |
| Блок ввода | Блок не может задавать сигналы переменного размера. Сигнал переменного размера (VarSizeSig) должен иметь значение No. | Проверка использования блоков источников > Проверка блоков ввода |
| Блок ввода | Для корневых блоков ввода, использующих объект шины, параметр блока Output as nonvirtual bus (Вывод в качестве невиртуальной шины) (BusOutputAsStruct) должен быть выбран (установить в значение on). | Проверка использования блоков источников > Проверка блоков ввода |
| Ссылочный блок модели | Блок не должен находиться в защищенном режиме. | Проверка использования блоков портов и подсистем > Проверка ссылочных блоков модели |
| Блок аутпорта | Блок не может задавать сигналы переменного размера. Сигнал переменного размера (VarSizeSig) должен иметь значение No. | Проверка использования блоков Sinks > Проверка блоков Outport |
| Спецификация сигнала | Сигнал переменного размера (VarSizeSig) должно быть No. | Проверка использования блоков атрибутов сигнала > Проверка блоков спецификации сигнала |
| Диаграммы Stateflow ® |
Диаграмма не должна содержать следующие объекты:
| Проверка использования диаграмм Stateflow > Проверка использования палитры объектов Stateflow |
| Диаграммы статофлоу | Свойство диаграммы Язык действий должно иметь значение C. | Проверьте использование диаграмм DataBitsets > Убедитесь, что все диаграммы указывают «C» в качестве языка действий |
| Диаграммы статофлоу | Свойство диаграммы Поддержка массивов переменного размера не должна быть выбрана. | Проверьте использование диаграмм Stateflow > Убедитесь, что ни одна диаграмма не поддерживает массивы переменного размера |
| Соединения Статефлоу | Неразрывные соединения должны иметь ровно один безусловный переход, выходящий из них. | Проверьте использование соединений Stateflow > Убедитесь, что неразрывные соединения имеют только один безусловный выходной переход. |
| Соединения Статефлоу | Безусловный переход должен быть последним в порядке выполнения. | Проверка использования соединений Stateflow > Проверка выполнения безусловных переходов последним в порядке выполнения |
| Графическая функция Stateflow | Графическая функция не должна содержать циклов управления потоком. | Проверьте использование графических функций Stateflow > Проверьте, что управляющие потоки не имеют циклов |
| Графическая функция Stateflow | Графическая функция не должна содержать неструктурированный поток управления. | Проверка использования графических функций Stateflow > Проверка структуры управляющих потоков |
| Состояния Статефлоу | Состояния не должны содержать циклов контрольного потока. | Проверка использования состояний Stateflow > Проверка отсутствия циклов для управляющих потоков |
| Таблицы истинности Stateflow | Таблицы истинности не должны содержать циклов потока управления. | Проверьте использование таблиц истинности Stateflow > Проверьте, что управляющие потоки не имеют циклов |
| Таблицы истинности Stateflow | Таблицы истинности не должны содержать неструктурированный поток управления. | Проверка использования таблиц истинности Stateflow > Проверка структуры управляющих потоков |
| Подсистемы | Подсистемы не должны быть функциональными блоками Simulink. | Проверка использования блоков портов и подсистем > Проверка блоков подсистем |
| Параметр блока триггера | Блок не должен находиться на корневом уровне модели, если Trigger type (тип триггера) (TriggerType) имеет значение rising, falling, или either. | Проверка использования блоков портов и подсистем > Проверка блоков триггерных портов |
| Функциональный блок MATLAB | Функциональная упаковка (RTWSystemCode) должен иметь значение Inline. | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функциональных блоков MATLAB установлен код RTWSystemCode |
| Функциональный блок MATLAB | Не следует выбирать поддерживаемые массивы переменного размера (необходимо установить значение off). | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB в поле «Support variable-size arrays» установлено значение «Off». |
| Имена функций для неинлинированных подсистем с интерфейсами вызова функции void-void | В модели неинлинированные подсистемы с интерфейсами вызова функции void-void должны использовать уникальные имена функций. | Проверка модели для подсистем void_void, использующих одно и то же имя функции > Проверка имен функций, используемых подсистемами void_void в модели |
В окне «Настройки Simulink» на панели «Общие» выберите параметр «Структура папки генерации кода». | Необходимо установить значение Model Specific. | Проверка структуры папок генерации кода для модели |