Когда вы осматриваете код, сгенерированный из моделей с КРИТИЧЕСКОЙ несовместимостью, инспекция кода останавливается. Код, сгенерированный из моделей с КРИТИЧЕСКИМИ несовместимостями, не может быть проверен.
Когда вы осматриваете код, сгенерированный из моделей с нефатальными несовместимостями, инспекция кода не останавливается. Несмотря на то, что не может быть возможно полностью проверить сгенерированный код, инспекция кода продолжается. Simulink® Code Inspector™ может частично проверить сгенерированный код.
Можно использовать проверки совместимости, чтобы идентифицировать и зафиксировать и критические и нефатальные несовместимости.
Параметр или атрибут | Ограничение | Проверка совместимости |
---|---|---|
На Панели Диагностики: Возможность соединения (Simulink) панель, Bus signal treated as vector (Simulink) (StrictBusMsg ) | Должен быть установлен в error (эквивалентный ErrorOnBusTreatedAsVector , заданному в командной строке). | Check diagnostic settings> Verify Bus signal treated as vector setting |
На Панели Диагностики: Возможность соединения (Simulink) панель, Non-bus signals treated as bus signals (Simulink) (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) панель, Language (Simulink Coder) (TargetLang ) | Должен быть установлен в C или C++ . | Check code generation settings> Verify 'Language' setting |
На Панели Генерации кода: Комментарии (Simulink Coder) панель, Include comments (Simulink Coder) (GenerateComments ) | Должен быть выбран (набор к on ). Синтаксические анализы Инспектора кода автоматически сгенерировали комментарии, чтобы получить информацию о трассируемости о данных модели. | Check code generation settings> Verify 'Include comments' setting |
На Панели Генерации кода: Интерфейс (Simulink Coder) панель, Code interface packaging (Simulink Coder) (CodeInterfacePackaging | Должен быть установлен в Nonreusable function или Reusable function | Check code generation settings> Verify 'Code interface packaging’ setting |
На Панели Генерации кода: Интерфейс (Simulink Coder) панель, Support: variable-size signals (Simulink 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 |
Включите параметры блоков | Включите Блокировки порта, не поддержаны на корневом уровне модели. | 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 |
Спецификация сигнала | 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 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 |