Образцовые шаблоны, которые могут привести к отказам верификации кода

Избыточные шаблоны моделирования

Модели с избыточными шаблонами моделирования приводят верификацию кода к сбою. При генерации кода Simulink® Coder™ устраняет избыточную функциональность блока. Если это устранение приводит к структурному изменению сгенерированного кода, инспекционных сбоев. Например:

  • Блоки switch с входными параметрами от тех же локальных сигналов. Блок switch 3 устраняется в сгенерированном коде. switch 1 блоков switch и switch 2 не устраняются, потому что они соединяются с корневым импортом. Simulink Code Inspector™ сообщает, что он как Не пройдено проверяет.

  • Блок чтения хранилища данных, соединенный с хранилищем данных, пишет блок. И Data Store Read и блоки Data Store Write1 устраняются в сгенерированном коде. Simulink Code Inspector сообщает о состоянии Warning.

  • Минимакс блокируется с входными параметрами от тех же локальных сигналов. Блок сравнивает две эквивалентных стоимости, приводящие к оператору if с пустым телом в сгенерированном коде. Simulink Code Inspector сообщает, что он как Не пройдено проверяет.

Блоки с постоянными неличными Выходными параметрами

Если ваша модель содержит блоки с постоянными неличными выходными параметрами, модель может привести верификацию кода к сбою. Результат является Отказавшим, чтобы проверить.

В этом примере блок Math Function фиксируется в бесконечности. Несмотря на то, что Simulink Coder генерирует код для модели, сбоев верификации кода.

Подсистемы действия с Выводом, не связанным, чтобы объединить блоки

Если ваша модель содержит подсистемы действия, и выходные параметры не соединяются с одним блоком слияния, модель может привести верификацию кода к сбою. Результат является Отказавшим, чтобы проверить.

В этом примере существует две подсистемы действия, каждый с выводом, соединенным с блоком усиления. Сбои верификации кода.

Чтобы передать верификацию кода, рассмотрите соединение вывода всех подсистем действия к одному блоку слияния, как показано ниже. Simulink Code Inspector может затем проверить модель.

Многопортовые блоки switch с входом от того же локального сигнала

Ваша модель может привести верификацию кода к сбою, если это содержит многопортовый блок switch с обоими:

  • Больше чем один вход от того же локального сигнала.

  • Выведите к локальному сигналу.

Сгенерированный код может иметь операторов case оператора switch с, проваливаются операторы выбора. Результат является Отказавшим, чтобы проверить.

В этом примере входные порты блока Multiport Switch 1 и 3 соединяются с тем же локальным сигналом. Сбои верификации кода.

Модели, инициировавшие оптимизацию кода, чтобы избежать копий данных

Модели с Присвоением, Селектором или 2D-inport Многопортовыми блоками switch могут инициировать оптимизацию, которая изменяет индексный выбор, чтобы избежать копий данных в сгенерированном коде. В этом примере OneBased Многопортовый блок switch имеет два импорта. Блок Gain5 умножает сигнал импортировать 2:

Во время генерации кода оптимизация перемещает Gain5, чтобы избежать копий данных в сгенерированном коде:

Сбои верификации кода.

Блок модели - ссылки с отключенным выходным портом

Если ваша модель отвечает каждому из следующих условий, образцовой верификации кода сбоя силы:

  • Модель содержит блок модели - ссылки.

  • Блок модели - ссылки имеет один выходной порт, который отключен.

  • Управление прототипом функции используется в блоке модели - ссылки, приводящем к порту возврата, заданному как отключенный выходной порт.

Похожие темы