Увеличьте вероятность генерации MISRA C совместимый код из кода MATLAB

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

Сконфигурируйте свойства объектов настройки генерации кода, чтобы увеличить вероятность MISRA C совместимый код

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

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

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

    СвойствоЗначение для увеличенного MISRA C соответствие
    CastingMode'Standards'
    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';

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

    codegen myFunction -config cfg ...

Сконфигурируйте настройки приложения MATLAB Coder, чтобы увеличить вероятность MISRA C совместимый код

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

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

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

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

  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 являются зарегистрированными торговыми марками MIRA Ltd., сохраненной от имени Консорциума MISRA.