Описание | При использовании кода MATLAB: |
A | Чтобы активировать сообщения КОД MATLAB Analyzer для поколений кода, используйте %#codegen директива во внешних функциях MATLAB. |
B | Просмотрите сообщения КОД MATLAB Analyzer. Либо: |
Примечания | Предоставляемые сообщения КОД MATLAB Analyzer идентифицируют потенциальные ошибки, проблемы и возможности для улучшения кода. |
Объяснение | A | Во внешних функциях MATLAB %#codegen директива активирует сообщения КОД MATLAB Analyzer для генерации кода. |
B |
Не следующие рекомендации КОД MATLAB Analyzer обоснованы идентификатором сообщения (например %#ok<NOPRT> . В функции MATLAB использование %#ok без идентификатора сообщения обосновывает полную линию, потенциально скрывая проблемы.
|
Проверки Model Advisor | Проверяйте сообщения анализатора кода MATLAB (Simulink Check) |
Ссылки |
IEC 61508-3, Таблица A.3 (3) 'Подмножество языка " IEC 61508-3, Таблица A.4 (3) «Оборонительное программирование » IEC 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) 'Language Subset' EN 50128, таблица A.3 (1) 'Defensive Programming' 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 Analyzer для поколений кода: %#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]
|