При проверке кода, сгенерированного из моделей с несовместимостью FATAL, инспекция кода прекращается. Код, сгенерированный из моделей с несовместимостью FATAL, не может быть проверен.
Когда вы проверяете код, сгенерированный из моделей с нефатальными несовместимостями, инспекция кода не прекращается. Несмотря на невозможность полной проверки сгенерированного кода, инспекция кода продолжается. Simulink® Code Inspector™ можете частично проверить сгенерированный код.
Можно использовать проверки совместимости, чтобы идентифицировать и исправить как фатальные, так и нефатальные несовместимости.
Параметр или атрибут | Ограничение | Проверка совместимости |
---|---|---|
На панели диагностики: панель «Подключение», Bus signal treated as vector (StrictBusMsg ) | Необходимо задать значение error (эквивалентно ErrorOnBusTreatedAsVector указывается в командной строке). | Check diagnostic settings> Verify Bus signal treated as vector setting |
На панели диагностики: панель «Подключение», Non-bus signals treated as bus signals (NonBusSignalsTreatedAsBus ) | Необходимо задать значение error . | Check diagnostic settings> Verify 'Non-bus signals treated as bus signals' setting |
На панели Генерация Кода Pane: General (Simulink Coder), System target file (Simulink Coder) (SystemTargetFile ) | Необходимо задать значение ert.tlc или системный целевой файл для ERT-производного целевого объекта. | Check system target file setting |
На панели «Генерация кода»: Комментарии (Simulink Coder), Include comments (Simulink Coder) (GenerateComments ) | Необходимо выбрать (установить на on ). Code Inspector анализирует автогенерированные комментарии, чтобы получить информацию о трассируемости данных моделей. | Check code generation settings> Verify 'Include comments' setting |
На панели Генерация Кода Pane: Interface (Simulink Coder), Support: variable-size signals (Embedded Coder) (SupportVariableSizeSignals ) | Необходимо удалить (установить на off ). | Check code generation settings> Verify 'variable-size signals' setting |
Использование шагов расчета | Модель не может использовать непрерывный, асинхронный, явный дискретный раздел, управляемый данными, объединение, экспортированные дискретные или переменные шаги расчета. | Check for sample times in the model> Check sample times |
Явные разделы | Модель не должна содержать явных разделов. | Check for sample times in the model> Check for explicit partitions |
Автоматическое преобразование виртуальной шины в невиртуальную | Автоматическое преобразование между виртуальной и невиртуальной шинами не поддерживается для инспекции кода. Он создает скрытый блок Signal Conversion, который не поддерживается для инспекции кода. | Check usage of buses> Check for automatic conversion between virtual to nonvirtual buses |
Блокируйте операции на шине | Невирусный блок не должен работать с виртуальной шиной, а Bus Assignment блок не должен работать с невиртуальной шиной. Это ограничение упрощает обработку шины для повышения трассируемости и читаемости сгенерированного кода. | Check usage of buses> Verify that blocks in the model do not perform unsupported operations on a bus |
Enable параметров блоков | Блоки Enable Port не поддерживаются на корневом уровне модели. | Check usage of Ports and Subsystems blocks> Check Enable Port blocks |
Inport блок | Блок не может задать сигналы переменного размера. Variable-size signal (VarSizeSig ) должно быть установлено в No . | Check usage of Sources blocks> Check Inport blocks |
Inport блок | Для корневых блоков inport, которые используют объект шины, блокируйте параметр Output as nonvirtual bus (BusOutputAsStruct ) должен быть выбран (установите значение on ). | Check usage of Sources blocks> Check Inport blocks |
Model Reference блок | Блок не должен находиться в защищенном режиме. | Check usage of Ports and Subsystems blocks> Check Model Reference blocks |
Outport блок | Блок не может задать сигналы переменного размера. Variable-size signal (VarSizeSig ) должно быть установлено в No . | Check usage of Sinks blocks> Check Outport blocks |
Signal Specification | Variable-size signal (VarSizeSig ) должен быть No . | Check usage of Signal Attributes blocks> Check Signal Specification blocks |
Stateflow® Чарты |
График не должен содержать ни одного из следующих объектов:
| Check usage of Stateflow charts> Check usage of Stateflow object palette |
Диаграммы Stateflow | Для Action Language свойств графика необходимо задать значение C . | Check usage of DataBitsets charts> Check that all charts specify 'C' as their action language |
Диаграммы Stateflow | Не следует выбирать Support variable-size arrays свойства графика. | Check usage of Stateflow charts> Check that no charts support variable-size arrays |
Соединения Stateflow | Неоконечные соединения должны иметь ровно один безусловный переход, выходящий из них. | Check usage of Stateflow junctions> Check that non-terminating junctions have exactly one unconditional exiting transition |
Соединения Stateflow | Безусловный переход должен быть последним в порядке выполнения. | Check usage of Stateflow junctions> Check that unconditional transitions execute last in execution order |
Графическая функция Stateflow | Графическая функция не должна содержать циклы потока управления. | Check usage of Stateflow graphical functions> Check that control flows do not have cycles |
Графическая функция Stateflow | Графическая функция не должна содержать неструктурированный поток управления. | Check usage of Stateflow graphical functions> Check that control flows are structured |
Состояния Stateflow | Состояния не должны содержать циклов потока управления. | Check usage of Stateflow states> Check that control flows do not have cycles |
Таблицы истинности Stateflow | Таблицы истинности не должны содержать циклы потока управления. | Check usage of Stateflow truth tables> Check that control flows do not have cycles |
Таблицы истинности Stateflow | Таблицы истинности не должны содержать неструктурированный поток управления. | Check usage of Stateflow truth tables> Check that control flows are structured |
Подсистемы | Подсистемы не должны быть блоками Simulink Function. | Check usage of Ports and Subsystems blocks> Check Subsystem blocks |
Trigger параметров блоков | Блок не должен быть на корневом уровне модели, когда Trigger type (TriggerType ) установлено в rising , falling , или either . | Check usage of Ports and Subsystems blocks> Check Trigger Port blocks |
MATLAB Function блок | Function packaging (RTWSystemCode ) должно быть установлено в Inline . | Check usage of MATLAB Function Blocks> Check that all MATLAB function blocks have RTWSystemCode set to Inline |
MATLAB Function блок | Support variable-size arrays не должен быть выбран (должен быть установлен на off ). | Check usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Support variable-size arrays’ to ‘Off’ |
Имена функции для неинлинфицированных подсистем с интерфейсами вызова с пустой функцией | В модели неинлинфицированные подсистемы с пустыми интерфейсами вызова функции должны использовать уникальные имена функции. | Check model for void_void subsystems that use the same function name> Check function names used by void_void subsystems in the model |
В настройках Simulink, на панели General, опцию Code generation folder structure | Необходимо задать значение Model Specific . | Check the code generation folder structure for the model |