himl_0004: код MATLAB рекомендации Анализатора для генерации кода

ID: Заголовокhiml_0004: рекомендации Анализатора кода MATLAB® для генерации кода
ОписаниеПри использовании кода MATLAB:
AЧтобы активировать код MATLAB сообщения Анализатора для генерации кода, используйте %#codegen директива во внешних функциях MATLAB.
B

Рассмотрите сообщения Анализатора кода MATLAB. Также:

  • Реализуйте рекомендации или

  • Выровняйте по ширине не в соответствии с рекомендациями с %#ok<message-ID(S)> директивы в функции MATLAB. Не используйте %#ok без определенных идентификаторов сообщений.

Примечания

Сообщения Анализатора кода MATLAB обеспечивают, идентифицирует потенциальные ошибки, проблемы и возможности для улучшения кода.

ОбъяснениеAВо внешних функциях MATLAB, %#codegen директива активирует код MATLAB сообщения Анализатора для генерации кода.
B
  • Следующий код MATLAB рекомендации Анализатора помогает:

    • Сгенерируйте эффективный код.

    • Примените лучшие методы генерации кода

    • Избегайте использования функций MATLAB, не поддерживавших для генерации кода.

    • Избегайте шаблонов кода, которые потенциально влияют на безопасность.

  • Не в соответствии с кодом MATLAB рекомендации Анализатора выравниваются по ширине с идентификатором сообщения (например, %#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) 'Проект и стандарты кодирования'

  • IEC 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 (1 ч) 'Использование соглашений о присвоении имен'

  • 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 ...:

    y = 3*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]