| Описание | При использовании кода MATLAB: |
| A | Для активации сообщений анализатора кода MATLAB для генерации кода используйте %#codegen директива во внешних функциях MATLAB. |
| B | Просмотрите сообщения анализатора кода MATLAB. Либо: |
| Примечания | В сообщениях анализатора кода MATLAB определяются возможные ошибки, проблемы и возможности для улучшения кода. |
| Объяснение | A | Во внешних функциях MATLAB %#codegen директива активирует сообщения анализатора кода MATLAB для генерации кода. |
| B |
Несоблюдение рекомендаций анализатора кода MATLAB оправдано идентификатором сообщения (например, %#ok<NOPRT>. В функции MATLAB с помощью %#ok без идентификатора сообщения оправдывает полную строку, потенциально скрывая проблемы.
|
| Проверки помощника по модели | Проверка сообщений анализатора кода MATLAB (Simulink Check) |
| Ссылки |
IEC 61508-3, Таблица A.3 (3) 'Поднабор языка " IEC 61508-3, таблица A.4 (3) «Оборонительное программирование » МЭК 61508-3, Таблица A.4 (5) «Стандарты проектирования и кодирования» МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов» ISO 26262-6, Таблица 1 (1d) «Использование защитных технологий реализации» ISO 26262-6, Таблица 1 (1e) «Использование надежных принципов проектирования» ISO 26262-6, Таблица 1 (1f) «Использование однозначного графического представления» ISO 26262-6, Таблица 1 (1g) «Использование руководств по стилю» ISO 26262-6, Таблица 1 (1h) «Использование условных обозначений» EN 50128, Таблица A.4 (11) «Поднабор языка» EN 50128, таблица A.3 (1) «Оборонительное программирование» EN 50128, Таблица A.12 (1) «Стандарт кодирования» EN 50128, Таблица A.12 (2) «Руководство по стилю кодирования» DO-331, Раздел MB.6.3.1.b «Точность и последовательность» DO-331, Раздел MB.6.3.2.b «Точность и последовательность»
|
| См. также | Проверка кода на наличие ошибок и предупреждений |
| Последнее изменение | R2016a |
| Примеры | Рекомендуется
Активировать сообщения анализатора кода MATLAB для генерации кода: %#codegen
function y = function(u)
y = inc_u(u));
end
function yy = inc_u(uu)
yy = uu + 1;
end
Оправдать отсутствие ; и value assigned might be unused: y = 2*u %#ok<NOPRT,NAGSU> output for debugging
...
y = 3*u; Если вывод не требуется и назначенное значение не используется, удалите строку y = 2*u ...:
Не рекомендуется
Внешний файл MATLAB, используемый в Simulink ® с отсутствующими%#codegen директива: function y = function(u)
% nested functions can't be used for code generation
function yy = inc_u(uu)
yy = uu + 1;
end
y = inc_u(u));
end
Все сообщения в строке оправдываются с помощью %#ok без идентификатора сообщения: % missing ';' and the value might be unused
y = 2*u %#ok
…
y = 3*u;
Без обоснования: % missing justification for missing ';' and unnecessary '[..]'
y= [2*u]
|