Поддержка блока MATLAB function

Simulink® Code Inspector™ поддерживает подмножество языка блока MATLAB function и функций инспекции кода. Инспектор кода проверяет использование блока MATLAB function. Для поддерживаемого языка и функций, могут применяться некоторые ограничения. Перед инспекцией кода, когда вы проверяете совместимость своей модели с правилами инспекции кода, программа контроля совместимости обнаруживает и сообщает о нарушениях ограничений блока MATLAB function. Simulink Code Inspector поддерживает следующее для инспекции кода:

Функция блока MATLAB functionЧто поддерживается
Тип данных
  • Встроенные типы данных: boolean, int8, int16, int32, uint8, uint16, uint32, single и double

  • Шина

  • Перечислимые типы наследованы от Simulink.IntEnumType

Размерность данных и сложность
  • Скаляр, вектор и матричные данные

  • Набор Sampling mode of output signal к Sample-based

  • Действительные данные

Осциллограф данных
  • Входной параметр

  • Вывод

  • Параметр

  • Классы памяти при следующих условиях:

    • Type установлен в Unstructured

    • Класс памяти не является допускающим повторное использование

  • Память хранилища данных

  • Персистентные переменные

Настройки блока MATLAB function
  • Function packaging (RTWSystemCode) набор к Inline

  • Saturate on integer overflow (SaturateOnIntegerOverflow) очищенный параметр (набор к off)

Операции MATLAB® - скаляр
  • Арифметика: uminus, uplus, minus, plus и multiplication

  • Реляционный: >, >=, <, <=, == и ~=

  • Логический: &, |, &&, || и not

  • ldivide (.\) и rdivide (./) - с плавающей точкой и целочисленный

  • power - плавающая точка и целое число

  • Перемещение.

Операции MATLAB - векторная поддержка
  • Массив и матричная поддержка поэлементных операторов.

  • Операторы присваивания, такие как y = u, для векторов или матриц, одного размера.

  • Индексирование массивов.

  • colon (:) оператор для целого числа или двойных данных и не больше, чем 3 операндов.

  • Конкатенация непеременных скалярных массивов размера.

  • Умножение матриц (*).

  • Перемещение.

Операторы программы MATLAB
  • Составные операторы

  • Операторы if

  • Операторы for

  • Операторы switch

Встроенные функции MATLAB
  • cast

  • Прямой бросок для: int8, int16, int32, uint8, uint16, uint32, double и single

  • true, ключевые слова false

  • zeros и ones

  • coder.nullcopy

  • assert

  • Математические функции (скалярная и поддержка массивов): rem, abs, sqrt, size, ceil, floor, fix, log, log10, exp, hypot, mod, round, pow2, min, max, sum и тригонометрические функции (sin, cos, tan, asin, acos, atan и atan2)

  • diag

  • eye

  • is* встроенные функции: isempty, isscalar, isvector, ismatrix, isrow, iscolumn, isinteger, isfloat, islogical и isnumeric

  • Битовые операции: bitand, bitcmp, bitget, bitor, bitset, bitshift и bitxor

  • Матричные операции и операции над массивами: dot, cross, length, mean, numel, prod, reshape и nnz

Функции
  • Функции блочного уровня MATLAB.

  • Вызовы функции к автономным пользовательским функциям.

  • Вызовы функции к пользовательским локальным функциям.

  • Определения автономных функций и локальных функций, которые совместимы с Simulink Code Inspector.

  • Использование coder.inline('always') и директив coder.inline('never').

  • coder.const

  • coder.ceval

Примечание

Simulink Code Inspector поддерживает верификацию функции coder.ceval в блоках MATLAB function, которая позволяет модели вызывать функцию C/C++ от сгенерированного кода. Чтобы добавить эту функциональность, Source file C/C++ и Header file заданы в параметрах конфигурации под Code Generation > Custom Code > Insert custom C code in generated. В результате определения этих параметров настройки генерации контрольного кода “Проверки совместимости” перестали работать с нефатальным предупреждением. В этой ситуации Simulink Code Inspector проверяет эти модели даже при том, что они перестали работать с нефатальным ограничением. Необходимо вручную рассмотреть внешние файлы C/C++, перечисленные под разделом Utils Verification Отчета Simulink Code Inspector.

Создание отчетовТрассируемость блочного уровня и верификация
Искаженные функцииВерификация искаженных имен функций сгенерирована от выражения деления блока MATLAB function. Отчет Simulink Code Inspector перечисляет эти функции так, чтобы можно было вручную проверить тело функции. Проверяйте тело функции вручную, чтобы быть уверенными, что это сопоставимо с вызовом функции.
Размер и верификация типаSimulink Code Inspector получает размер и информацию о типе для переменных в коде от данных моделирования блока. Чтобы независимо проверить тип и информацию о размере, можно использовать Simulink Report Generator™, чтобы сгенерировать отчет Описания разработки системы (SDD) для модели. Проверяйте отчет SDD на данные о символе блока MATLAB function, такие как размер, сложность, положение и сайты вызова функции.

Ограничения блока MATLAB function делят ограничения на следующие категории:

  • Ограничения на блок MATLAB function.

  • Ограничения на данные в функциях MATLAB.

  • Ограничения на код в функциях MATLAB.

  • Ограничения на код MATLAB сообщения Анализатора.

Таблица обеспечивает ограничения, которые запрашивают каждую категорию.

Для каждой записи в таблице:

  • Списки столбцов Constraint ограничение Simulink Code Inspector на блок MATLAB function, данные или код.

  • Столбец FATAL / Nonfatal идентифицирует, отключает ли нарушение ограничения инспекцию кода.

    • Когда вы осматриваете код, сгенерированный из моделей с КРИТИЧЕСКОЙ несовместимостью, инспекция кода останавливается. Код, сгенерированный из моделей с КРИТИЧЕСКИМИ несовместимостями, не может быть проверен.

    • Когда вы осматриваете код, сгенерированный из моделей с нефатальными несовместимостями, инспекция кода не останавливается. Несмотря на то, что не может быть возможно полностью проверить сгенерированный код, инспекция кода продолжается. Simulink Code Inspector может частично проверить сгенерированный код. Можно сконфигурировать инспекцию кода так, чтобы нефатальное ограничительное нарушение отключило инспекцию кода.

  • Списки столбцов Compatibility Check проверка совместимости, которая проверяет на нарушение ограничения и соединяется с описанием проверки.

Похожие темы