MATLAB Function блок | FATAL/Нефатальный | Проверка совместимости |
---|---|---|
Имена блоков:
| Неокончательный | 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 |
Выходной порт не должен быть проверен, когда блок имеет константу (Inf ) шаг расчета. | Неокончательный | Check usage of MATLAB Function Blocks> Check for unsupported testpoints |
Выходные пользовательские классы памяти сигналов:
| Неокончательный | Check usage of MATLAB Function Blocks> Check storage class of block outports |
Входные и выходные порты должны быть скалярами, векторами или 2-D матрицами. | Неокончательный | 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 . Если Nonreusable function или Reusable function выбран, подсистема и модель должны быть в поддерживаемых строениях. | Неокончательный | Check usage of MATLAB Function Blocks> Identify Subsystems that have unsupported configurations for non-inlined |
Переиспользуемая подсистема в модели должна быть из библиотеки. Он должен быть демаскирован, односкоростной атомарной подсистемы или подсистемы вызова функций. | Неокончательный | Check usage of MATLAB Function Blocks> Check that reusable subsystems in a model are from a library and are unmasked single-rate atomic or function-call subsystems |
Функция MATLAB не должна использовать входные сигналы Trigger. | Неокончательный | Check usage of MATLAB Function Blocks> Check that MATLAB functions do not contain input Trigger signals |
Блок, который является постоянным или имеет параметры, которые могут быть настроены, не должен управлять двумя или более многократными блоками, не используя явные блоки Rate Transition. | Неокончательный | 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 | FATAL/Нефатальный | Проверка совместимости |
---|---|---|
Данные, заданные в функции 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 | FATAL/Нефатальный | Проверка совместимости |
---|---|---|
Чтобы использовать не встроенные пользовательские функции с глобальными переменными в коде 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 операторы не должны иметь выражений случая, содержащих массив ячеек. | Неокончательный | Check usage of Code in MATLAB Functions> Check that switch statements in MATLAB code do not have case expressions containing a cell array |
switch операторы должны использовать один и тот же скалярный целый тип для всех условий switch и case. | Неокончательный | 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 не должны вызывать выходы вызова функции. | Неокончательный | Check usage of Code in MATLAB Functions> Check usage of function call outputs in MATLAB code |
Код MATLAB не должен содержать определения внутренней функции. | Неокончательный | Check usage of Code in MATLAB Functions> Check usage of inner functions in MATLAB code |
coder.targer не должно содержать пустой целевой объект. | Неокончательный | Check usage of Code in MATLAB Functions> Check that coder.target in MATLAB code contains a non-empty target |
Ограничение сообщения анализатора кода MATLAB | FATAL/Нефатальный | Проверка совместимости |
---|---|---|
Проблемы в 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 |