| Ограничение функционального блока MATLAB | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
|
Имена блоков:
| Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте имена блоков, которые содержат символы «/* »,« */» или начинаются или заканчиваются символом «*» |
Класс хранения выходного сигнала должен быть установлен в Auto когда блок имеет константу (Inf) время выборки. | Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка неподдерживаемого использования класса хранения |
Выходной порт не должен тестироваться, если блок имеет константу (Inf) время выборки. | Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка неподдерживаемых тестовых точек |
|
Выводить пользовательские классы хранения сигналов:
| Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка класса хранения выходных блоков |
| Входными и выходными портами должны быть скаляры, векторы или 2-D матрицы. | Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка наличия блоков с более чем двумерными входами или выходами |
| Порты ввода и вывода не должны использовать сигналы на основе кадров. | Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка отсутствия обрамления входов и выходов |
Функция MATLAB ® должна установить метод Update в значениеInherited. | Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлен «Метод обновления» на «Наследуемый». |
Функциональная упаковка (RTWSystemCode) должен иметь значение Inline. Если Nonreusable function или Reusable function выбран, подсистема и модель должны находиться в поддерживаемых конфигурациях. | Неокончательный | Проверка использования функциональных блоков MATLAB > Идентификация подсистем с неподдерживаемыми конфигурациями для неинлинизированных |
| Повторно используемая подсистема в модели должна быть из библиотеки. Она должна быть демаскированной, односкоростной атомной подсистемой или подсистемой функционального вызова. | Неокончательный | Проверка использования функциональных блоков MATLAB > Проверка того, что повторно используемые подсистемы в модели находятся в библиотеке и являются демаскированными односкоростными атомными подсистемами или подсистемами вызова функций |
| Функция MATLAB не должна использовать входные триггерные сигналы. | Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте, что функции MATLAB не содержат входных триггерных сигналов. |
| Блок, который является постоянным или имеет параметры, которые могут быть настроены, не должен управлять двумя или более многоскоростными блоками без использования явных блоков Rate Transition. | Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте, что блоки, которые являются постоянными или параметры которых могут быть настроены, не управляют двумя или более многоскоростными блоками без использования явных блоков перехода скорости. |
Насыщение при целочисленном переполнении (SaturateOnIntegerOverflow) не должен быть выбран (должен быть установлен в off). | Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлено значение «Saturate on integer overflow» (Насыщение при переполнении целого числа) «Off» (Выкл). |
Рассматривать эти унаследованные типы сигналов Simulink как объекты fi не должны иметь значение Fixed-point & Integer. | Неокончательный | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлено значение «Рассматривать наследуемые типы сигналов Simulink как объекты fi:», отличное от «Фиксированная точка и целое число». |
Не следует выбирать поддерживаемые массивы переменного размера (необходимо установить значение off). | ФАТАЛЬНЫЙ | Проверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB в поле «Support variable-size arrays» установлено значение «Off». |
| Ограничение данных функции MATLAB | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
Данные, определенные в функции MATLAB, должны иметь один из следующих поддерживаемых типов данных: встроенный, шинный или перечисляемый тип, унаследованный от Simulink.IntEnumType. | Неокончательный | Проверьте использование данных в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют поддерживаемый тип данных. |
| Данные, определенные в функции MATLAB, должны иметь одно из следующих поддерживаемых измерений: скаляр, вектор или матрица. | Неокончательный | Проверьте использование данных в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют поддерживаемое измерение. |
| Данные, определенные в функции MATLAB, должны быть некомплексными. | Неокончательный | Проверка использования данных в функциях MATLAB > Проверка несложности данных, определенных в функции MATLAB |
| Ограничение кода MATLAB | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
Для использования неинлинированных пользовательских функций с глобальными переменными в коде MATLAB:
| Неокончательный | Проверка использования кода в функциях MATLAB > Проверка неинлинированных пользовательских функций с глобальными переменными в коде MATLAB |
| Неинлинированные пользовательские функции в коде MATLAB должны определять только один вывод | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что неинлинированные пользовательские функции в коде MATLAB содержат только один вывод. |
| Для подстрочного индекса массива в коде MATLAB для соответствующего измерения размера 1 должно использоваться постоянное значение индекса 1. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что подстрочный индекс массива в коде MATLAB использует постоянный индекс 1 для соответствующего измерения размера 1 |
| При индексировании массива в коде MATLAB должен использоваться нижний индекс, меньший или равный базовому измерению массива. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что индексирование массива в коде MATLAB использует нижний индекс, который меньше или равен базовому измерению массива |
|
| Неокончательный | Проверка использования кода в функциях MATLAB > Проверка аргумента типа для приведения в функциях MATLAB |
colon (:) оператор не должен иметь более 3 операндов. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы двоеточия в коде MATLAB имеют не более 3 операндов |
colon (:) оператор должен использовать целочисленные или двойные данные. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы двоеточия в коде MATLAB используют только целочисленные и двойные данные |
Данные, используемые в функции MATLAB, должны иметь один из следующих типов данных: boolean, int8, int16, int32, uint8, uint16, uint32, single, double, или скалярная шина. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что данные, используемые в функции MATLAB, имеют поддерживаемый тип данных. |
|
Диагональное число, указанное для D = diag(v,k) где | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что диагональное число, используемое в функции diag в коде MATLAB, является постоянным. |
| Идентификаторы, используемые в присвоении, массиве, аргументах вызова функции и аргументах определения функции, должны быть скалярными, векторными или матричными. Идентификаторы, используемые в любом другом контексте, должны быть скалярными. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что код в функции MATLAB имеет поддерживаемое измерение |
| Скобки в коде MATLAB не должны быть пустыми. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка непустых скобок в коде MATLAB |
for операторы в коде MATLAB должны иметь диапазоны индексов, которые являются моноинкрементными двоеточиями. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB имеются диапазоны индексов, которые представляют собой одномоментные инкрементные двоеточия |
for операторы в коде MATLAB должны иметь значения диапазона индекса, являющиеся целыми числами литерала const. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB значения диапазона индекса являются целыми числами литерала const |
for операторы в коде MATLAB должны иметь значения скалярного индекса. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB имеются значения скалярного индекса. |
| Операнды оператора питания точки должны быть одиночного или двойного типа данных. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют двойной или одиночный тип данных. |
Для корневых функций MATLAB, если Для пользовательских функций MATLAB: | Неокончательный | Проверьте использование Code в MATLAB Functions > Для корневой функции MATLAB не указывайте coder.inline directive или устанавливайте coder.inline directive как 'всегда'. Для определяемых пользователем функций MATLAB явно задайте для директивы coder.inline значение 'always' или 'never' |
| Математические функции в коде MATLAB должны использовать целочисленные данные или данные с плавающей запятой. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что математические функции в коде MATLAB используют только целочисленные данные и данные с плавающей запятой. |
| В функциях MATLAB не должна отсутствовать информация о типе данных. | Неокончательный | Проверьте использование кода в функциях MATLAB > Убедитесь, что в функциях MATLAB отсутствует информация о типе данных. |
| В функциях MATLAB не должна отсутствовать информация об измерении. | Неокончательный | Проверьте использование кода в функциях MATLAB > Убедитесь, что в функциях MATLAB отсутствует информация об измерении. |
| Вызовы функций в коде MATLAB должны разрешаться в известное определение функции. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что все вызовы функций в коде MATLAB соответствуют известному определению функции. |
| Операторы в функциях MATLAB не должны иметь операндов со смешанным типом данных. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы, используемые в функции MATLAB, не имеют операндов со смешанным типом данных. |
| При использовании матричных операций в коде MATLAB пороговое значение Разматывания цикла не должно приводить к частичному разматыванию циклов в сгенерированном коде. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что при использовании матричных операций в коде MATLAB «Loop unrolling threshold» не приводит к частичному развертыванию циклов в сгенерированном коде. |
Условная инициализация постоянной переменной должна использовать if оператор с одним isempty(persistent) или ~isempty(persistent) состояние. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, использует ли условная инициализация постоянных переменных оператор if с одним условием isempty (persistent) или ~ isempty (persistent) |
Условная инициализация постоянной переменной должна содержать только одну инструкцию в if тело инструкции. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка наличия только одной инструкции инициализации постоянной переменной в теле инструкции «if» |
switch операторы не должны содержать выражения регистра, содержащие массив ячеек. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы switch в коде MATLAB не содержат выражений регистра, содержащих массив ячеек |
switch операторы должны использовать один и тот же скалярный целочисленный тип для всех условий switch и case. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы switch в коде MATLAB используют один и тот же скалярный целочисленный тип для всех условий. |
colon (:) операции функции и деления в коде MATLAB должны использовать скалярные операнды. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что операторы и функции в коде MATLAB поддерживают измерения операндов. |
if операторы должны использовать скалярные условия. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что если операторы в коде MATLAB используют скалярные условия. |
| Функции MATLAB не должны содержать неподдерживаемый код MATLAB. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка неподдерживаемого кода MATLAB в функциях MATLAB |
| Модель не должна определять рекурсивные функции в коде MATLAB. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка использования рекурсивных функций в коде MATLAB |
coder.ceval не должно указывать -global вариант. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что coder.ceval в коде MATLAB не указывает параметр «-global» |
coder.ceval не должно указывать layout вариант. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что coder.ceval в коде MATLAB не определяет опцию компоновки. |
| Подфункции в коде MATLAB не должны вызывать выходы вызова функции. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка использования выходных сигналов вызова функции в коде MATLAB |
| Код MATLAB не должен содержать определения внутренней функции. | Неокончательный | Проверка использования кода в функциях MATLAB > Проверка использования внутренних функций в коде MATLAB |
coder.targer не должен содержать пустой целевой объект. | Неокончательный | Проверьте использование кода в функциях MATLAB > Проверьте, что файл coder.target в коде MATLAB содержит непустую цель |
| Ограничение сообщений анализатора кода MATLAB | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Проблемы в функциональном блоке MATLAB. | Неокончательный | Проверка сообщений анализатора кодов MATLAB > Проверка кода MATLAB, используемого в функциональных блоках MATLAB |
| Проблемы в называемых функциях MATLAB. | Неокончательный | Проверка сообщений анализатора кодов MATLAB > Проверка функций MATLAB |