Когда вы смотрите код, сгенерированный из моделей с КРИТИЧЕСКОЙ несовместимостью, инспекция кода завершает работу. Код, сгенерированный из моделей с КРИТИЧЕСКИМИ несовместимостями, не может быть проверен.
Когда вы смотрите код, сгенерированный из моделей с нефатальными несовместимостями, инспекция кода не завершает работу. Несмотря на то, что не может быть возможно полностью проверить сгенерированный код, инспекция кода продолжается. 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 |
На Панели Генерации кода: Общий (Simulink Coder) панель, System target file (Simulink Coder) (SystemTargetFile) | Должен быть установлен в ert.tlc или системный конечный файл для ERT-выведенной цели. | Check system target file setting |
На Панели Генерации кода: Комментарии (Simulink Coder) панель, Include comments (Simulink Coder) (GenerateComments) | Должен быть выбран (набор к on). Синтаксические анализы Инспектора кода автоматически сгенерировали комментарии, чтобы получить информацию о трассируемости о данных модели. | Check code generation settings> Verify 'Include comments' setting |
На Панели Генерации кода: Интерфейс (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 | Включите Блокировки порта, не поддерживаются на корневом уровне модели. | 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 | Для корневых блоков импорта, которые используют объект шины, параметры блоков 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. | 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 |