Сгенерируйте Код C/C++ с Улучшенной Податливостью MISRA

Ассоциация Надежности Motor Industry Software (MISRA®) [1] установила “Инструкции для Использования языка C в Критических Системах” (MISRA C®). Когда вы генерируете код из кода MATLAB®, если у вас есть Embedded Coder®, можно сконфигурировать определенные параметры генерации кода, чтобы увеличить вероятность генерации C и Кода С++, которые выполняют MISRA C:2012 и MISRA C ++:2008 инструкций.

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

Сконфигурируйте свойства объектов настройки генерации кода

  1. Создайте объект настройки генерации кода Embedded Coder.

    cfg = coder.config('lib', 'ecoder', true);
    

  2. Установите свойства, перечисленные в таблице на значения для улучшенной податливости MISRA.

    СвойствоЗначение для улучшенной податливости MISRA
    CastingMode'Standards'
    CppNamespace

    Любое допустимое пространство имен называет для C++

    DataTypeReplacement'CoderTypedefs'
    DynamicMemoryAllocation'Off'
    EnableRuntimeRecursionfalse
    EnableSignedLeftShiftsfalse
    EnableSignedRightShiftsfalse
    GenerateDefaultInSwitchtrue
    ParenthesesLevel'Maximum'
    TargetLangStandard 'C99 (ISO)' для C, 'C++03 (ISO)' для C++

    Чтобы установить эти свойства за один шаг, используйте coder.setupMISRAConfig.

    coder.setupMISRAConfig(cfg);

    В качестве альтернативы установите свойства индивидуально. Например:

    cfg.CastingMode = 'Standards';

    Если CppNamespace свойство сброшено, и TargetLang свойством является 'C++', затем coder.setupMISRAConfig устанавливает CppNamespace свойство к вектору символов по умолчанию, 'Codegen'. Измените это значение к имени пространства имен, которое конкретно к вашему проекту.

  3. Передайте объект настройки codegen при помощи -config опция.

    codegen myFunction -config cfg ...

Сконфигурируйте настройки приложения MATLAB Coder

  1. На странице Generate Code, набор Build type к Source Code, Static Library, Dynamic Library, или Executable.

  2. Нажмите More Settings.

  3. Нажмите MISRA Compliance.

    Отображения приложения настройки, которые могут повлиять на податливость MISRA.

  4. Чтобы установить все эти настройки к рекомендуемым значениям, нажмите Set to Recommended Values.

    Чтобы изменить отдельную установку, нажмите All Settings, и затем ищите установку.

Дополнительные настройки для податливости C++ MISRA

По умолчанию Код С++, который вы генерируете, использует пользовательское определение типа в bool максимизировать совместимость с определенными предварительно скомпилированными библиотеками. Это пользовательское определение типа может вызвать нарушения для MISRA C ++:2008 Правил 5-0-13 и Правило 5-3-1.

Использовать встроенный bool введите в сгенерированном Коде С++, и избегайте этих нарушений, измените настройки Hardware Board в объекте настройки от MATLAB Host Computer. Чтобы видеть, как изменить эти настройки в Приложении, смотрите Access Hardware Implementation Properties с Диалоговым окном (MATLAB Coder). Например, для генерации кода и основываются на 64-битной платформе Windows®, изменяют Hardware Board в None - Select device below, и затем набор Device vendor к Intel и Device type к x86-64 (Windows64).

Смотрите также

|

Похожие темы

Внешние веб-сайты


[1]  MISRA и MISRA C являются зарегистрированными торговыми марками HORIBA MIRA Ltd., сохраненной от имени Консорциума MISRA.