Модели с избыточными шаблонами моделирования не проходят верификацию кода. При генерации кода Simulink® Coder™ устраняет избыточную функциональность блока. Если это исключение приводит к структурному изменению сгенерированного кода, проверка прекращается. Для примера:
Переключайте блоки с входами от тех же локальных сигналов. The switch 3
блок устраняется в сгенерированном коде. Блоки Switch switch 1
и switch 2
не устранены, поскольку они соединяются с корневыми входными портами. Simulink Code Inspector™ сообщает, что не удалось проверить.
Блок чтения хранилища данных, соединенный с блоком записи хранилища данных. Оба Data Store Read
и Data Store Write1
блоки устраняются в сгенерированном коде. Simulink Code Inspector сообщает о состоянии предупреждения.
Minmax блокирует с входами от тех же локальных сигналов. Блок сравнивает два эквивалентных значения, получая if
оператор с пустым телом в сгенерированном коде. Simulink Code Inspector сообщает, что не удалось проверить.
Если ваша модель содержит блоки с постоянными не конечными выходами, модель может не пройти верификацию кода. Результат: Не удалось проверить.
В этом примере Math Function
блок фиксируется в бесконечности. Хотя Simulink Coder генерирует код для модели, верификация кода прекращает работать.
Если ваша модель содержит подсистемы действий, и выходы не соединены с одним блоком слияния, модель может не выполнить верификацию кода. Результат: Не удалось проверить.
В этом примере существуют две подсистемы действий, каждая с выходом, соединенным с блоком усиления. Не удалось выполнить проверку кода.
Чтобы пройти верификацию кода, рассмотрите подключение выхода всех подсистем действий к одному блоку слияния, как показано ниже. Simulink Code Inspector может затем проверить модель.
Ваша модель может не верификация кода, если она содержит мультипортовый блок switch с обоими:
Более одного входы от того же локального сигнала.
Выход на локальный сигнал.
Сгенерированный код может иметь операторы обращения с падением выражений случая. Результат: Не удалось проверить.
В этом примере Multiport Switch
блочные входные порты 1 и 3 соединяются с одним и тем же локальным сигналом. Не удалось выполнить проверку кода.
Модели с Assignment, Selector или двухпортовыми блоками Multiport Switch могут инициировать оптимизацию, которая изменяет выбор индекса, чтобы избежать копий данных в сгенерированном коде. В этом примере OneBased
Мультипортовый Блок switch имеет два входных порта. The Gain5
блок умножает сигнал на входной порт 2:
Во время генерации кода оптимизация перемещает Gain5
чтобы избежать копий данных в сгенерированном коде:
Не удалось выполнить проверку кода.
Если ваша модель удовлетворяет каждому из следующих условий, модель может не пройти верификацию кода:
Модель содержит блок модели-ссылки.
Блок модель-ссылка имеет один выходной порт, который отключен.
Управление прототипом функции используется в блоке модели-ссылки, в результате чего порт возврата определяется как оконечный порт.