Ограничение блока MATLAB function | КРИТИЧЕСКИЙ / Нефатальный | Проверка совместимости |
---|---|---|
Имена блока:
| Нефатальный | Check usage of MATLAB Function Blocks> Check for block names that contain ‘/*’,’*/’, or start or end with the character ‘*’ |
Класс памяти выходного сигнала должен быть установлен в Auto , когда блок имеет постоянный (Inf ) шаг расчета. | Нефатальный | Check usage of MATLAB Function Blocks> Check for unsupported usage of storage class |
Выходной порт не должен быть testpointed, когда блок имеет постоянный (Inf ) шаг расчета. | Нефатальный | Check usage of MATLAB Function Blocks> Check for unsupported testpoints |
Выведите пользовательские классы памяти сигнала:
| Нефатальный | Check usage of MATLAB Function Blocks> Check storage class of block outports |
Порты ввода и вывода должны быть скалярами, векторами или 2D матрицами. | Нефатальный | Check usage of MATLAB Function Blocks> Check for blocks with greater than two-dimensional inputs or outputs |
Порты ввода и вывода не должны использовать основанные на кадре сигналы. | Нефатальный | Check usage of MATLAB Function Blocks> Check whether inputs and outputs are not framed |
Функция MATLAB® должна установить Update method на Inherited . | Нефатальный | Check usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Update method’ to ‘Inherited’ |
Function packaging (RTWSystemCode ) должен быть установлен в Inline . | КРИТИЧЕСКИЙ | Check usage of MATLAB Function Blocks> Check that all MATLAB function blocks have RTWSystemCode set to Inline |
Функция MATLAB не должна использовать сигналы входа Trigger. | Нефатальный | Check usage of MATLAB Function Blocks> Check that MATLAB functions do not contain input Trigger signals |
Функция MATLAB не должна использовать выходные сигналы вызова функции. | Нефатальный | Check usage of MATLAB Function Blocks> Check that MATLAB functions do not contain Function Call output signals |
Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, не должен управлять двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня. | Нефатальный | Check usage of MATLAB Function Blocks> Check that blocks that are constant or whose parameters can be tuned, do not drive two or more multirate blocks without using explicit rate transition blocks |
Saturate on integer overflow (SaturateOnIntegerOverflow ) не должен быть выбран (должен быть установлен в off ). | Нефатальный | Check usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Saturate on integer overflow’ to ‘Off’ |
Treat these inherited Simulink signal types as fi objects не должен быть установлен в Fixed-point & Integer . | Нефатальный | Check usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Treat these inherited Simulink signal types as fi objects:’ to a value other than ‘Fixed-point & Integer’ |
Support variable-size arrays не должен быть выбран (должен быть установлен в off ). | КРИТИЧЕСКИЙ | Check usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Support variable-size arrays’ to ‘Off’ |
Ограничение данных о функции MATLAB | КРИТИЧЕСКИЙ / Нефатальный | Проверка совместимости |
---|---|---|
Данные, заданные в функции MATLAB, должны иметь один из следующих поддерживаемых типов данных: встроенный, шина или перечислимый тип, наследованный от Simulink.IntEnumType . | Нефатальный | Check usage of Data in MATLAB Functions> Check that data defined in MATLAB function is of a supported data type |
Данные, заданные в функции MATLAB, должны иметь одну из следующих поддерживаемых размерностей: скаляр, вектор или матрица. | Нефатальный | Check usage of Data in MATLAB Functions> Check that data defined in MATLAB function is of a supported dimension |
Данные, заданные в функции MATLAB, должны быть некомплексными. | Нефатальный | Check usage of Data in MATLAB Functions> Check that data defined in MATLAB function is non-complex |
Ограничение кода MATLAB | КРИТИЧЕСКИЙ / Нефатальный | Проверка совместимости |
---|---|---|
Использовать невстроенные пользовательские функции с глобальными переменными в коде MATLAB:
| Нефатальный | Check usage of Code in MATLAB Functions> Check non-inlined user defined functions with global variables in MATLAB code |
Невстроенные пользовательские функции в коде MATLAB должны задать только один вывод | Нефатальный | Check usage of Code in MATLAB Functions> Check that non-inlined user defined functions in MATLAB code contain only one output |
Индексирование массивов в коде MATLAB должно использовать постоянное индексное значение 1 для соответствующей размерности размера 1. | Нефатальный | Check usage of Code in MATLAB Functions> Check that array subscripting in MATLAB code uses a constant index of 1 for a corresponding dimension of size 1 |
Индексация массива в коде MATLAB должна использовать индекс, который меньше чем или равен базовой размерности массивов. | Нефатальный | Check usage of Code in MATLAB Functions> Check that array indexing in MATLAB code uses a subscript that is less than or equal to the array base dimension |
Функция
| Нефатальный | Check usage of Code in MATLAB Functions> Check type argument for cast in MATLAB functions |
colon (: ) оператор не должен иметь больше чем 3 операндов. | Нефатальный | Check usage of Code in MATLAB Functions> Check that colon operators in MATLAB code have no more than 3 operands |
colon (: ) оператор должен использовать целое число или двойные данные. | Нефатальный | Check usage of Code in MATLAB Functions> Check that colon operators in MATLAB code use only integer and double data |
Данные, используемые в функции MATLAB, должны иметь один из следующих типов данных: boolean , int8 , int16 , int32 , uint8 , uint16 , uint32 , single , double или скалярная шина. | Нефатальный | Check usage of Code in MATLAB Functions> Check that data used in MATLAB function is of a supported data type |
Диагональный номер, заданный для функции D = diag(v,k) где | Нефатальный | Check usage of Code in MATLAB Functions> Check that diagonal number used in a diag function in MATLAB code is constant |
Идентификаторы, используемые в присвоении, массиве, аргументах вызова функции и функциональных аргументах определения, должны быть скаляром, вектором или матрицей. Идентификаторы, используемые в любом другом контексте, должны быть скаляром. | Нефатальный | Check usage of Code in MATLAB Functions> Check that code in MATLAB function is of a supported dimension |
Скобки в коде MATLAB не должны быть пустыми. | Нефатальный | Check usage of Code in MATLAB Functions> Check for nonempty brackets in MATLAB code |
Операторы for в коде MATLAB должны иметь индексные области значений, которые являются моно инкрементными выражениями двоеточия. | Нефатальный | Check usage of Code in MATLAB Functions> Check that for statements in MATLAB code have index ranges that are mono incremental colon expressions |
Операторы for в коде MATLAB должны иметь индексные значения области значений, которые являются литеральными целыми числами const. | Нефатальный | Check usage of Code in MATLAB Functions> Check that for statements in MATLAB code have index range values that are literal const integers |
Операторы for в коде MATLAB должны иметь скалярные индексные значения. | Нефатальный | Check usage of Code in MATLAB Functions> Check that for statements in MATLAB code have scalar index values |
Операнды точечного оператора степени должны иметь один или двойной тип данных. | Нефатальный | Check usage of Code in MATLAB Functions> Check that data defined in MATLAB function is of a double or single data type |
Поскольку MATLAB базируется функции, если директива Для пользовательских функций MATLAB директива | Нефатальный | Check usage of Code in MATLAB Functions> For MATLAB root function, do not specify coder.inline directive or set coder.inline directive to 'always'. For user defined MATLAB functions, explicitly set coder.inline directive to 'always' or 'never' |
Математические функции в коде MATLAB должны использовать целочисленные или данные с плавающей точкой. | Нефатальный | Check usage of Code in MATLAB Functions> Check that math functions in MATLAB code use only integer and floating-point data |
Функции MATLAB не должны иметь недостающей информации о типе данных. | Нефатальный | Check usage of Code in MATLAB Functions> Check that no code in MATLAB functions has missing data type information |
Функции MATLAB не должны иметь недостающей информации о размерности. | Нефатальный | Check usage of Code in MATLAB Functions> Check that no code in MATLAB functions has missing dimension information |
Вызовы функции в коде MATLAB должны решить к известному функциональному определению. | Нефатальный | Check usage of Code in MATLAB Functions> Check that all function calls in MATLAB code resolve to a known function definition |
Операторы в функциях MATLAB не должны иметь операндов со смешанным типом данных. | Нефатальный | Check usage of Code in MATLAB Functions> Check that operators used in MATLAB function do not have operands with mixed data type |
При использовании операций над матрицей в коде MATLAB Loop unrolling threshold не должен приводить к частично развернутым циклам в сгенерированном коде. | Нефатальный | Check usage of Code in MATLAB Functions> Check that the ‘Loop unrolling threshold’ does not result in partially unrolled loops in the generated code when using matrix operations in MATLAB code |
Условная инициализация персистентной переменной должна использовать оператор if с одним isempty(persistent) или условием ~isempty(persistent) . | Нефатальный | Check usage of Code in MATLAB Functions> Check that conditional initialization of persistent variables uses an 'if' statement with a single isempty(persistent) or ~isempty(persistent) condition |
Условная инициализация персистентной переменной должна содержать только один оператор в теле оператора if . | Нефатальный | Check usage of Code in MATLAB Functions> Check that there is only one initialization statement of a persistent variable in ‘if’ statement body |
Операторы switch не должны иметь case-выражений, содержащих массив ячеек. | Нефатальный | Check usage of Code in MATLAB Functions> Check that switch statements in MATLAB code do not have case expressions containing a cell array |
Операторы switch должны использовать тот же скалярный целочисленный тип для всего переключателя и условий случая. | Нефатальный | Check usage of Code in MATLAB Functions> Check that switch statements in MATLAB code use the same scalar integer type for all conditions |
colon (: ) функциональные и операции деления в коде MATLAB должен использовать скалярные операнды. | Нефатальный | Check usage of Code in MATLAB Functions> Check that operators and functions in MATLAB code have supported operand dimensions |
Операторы if должны использовать условия, которые являются скаляром. | Нефатальный | Check usage of Code in MATLAB Functions> Check that if statements in MATLAB code use conditions that are scalar |
Функции MATLAB не должны содержать неподдерживаемый код MATLAB. | Нефатальный | Check usage of Code in MATLAB Functions> Check for unsupported MATLAB code in MATLAB functions |
Модель не должна задавать рекурсивные функции в коде MATLAB. | Нефатальный | Check usage of Code in MATLAB Functions> Check usage of recursive functions in MATLAB code |
coder.ceval не должен задавать опцию -global . | Нефатальный | Check usage of Code in MATLAB Functions> Check that coder.ceval in MATLAB code does not specify '-global' option |
coder.ceval не должен задавать опцию layout . | Нефатальный | Check usage of Code in MATLAB Functions> Check that coder.ceval in MATLAB code does not specify layout option |
Код MATLAB ограничение сообщения анализатора | КРИТИЧЕСКИЙ / Нефатальный | Проверка совместимости |
---|---|---|
Проблемы в блоке MATLAB function. | Нефатальный | Check MATLAB Code Analyzer messages> Check MATLAB code used in MATLAB Function blocks |
Проблемы в названных функциях MATLAB. | Нефатальный | Check MATLAB Code Analyzer messages> Check called MATLAB functions |