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

Ассоциация надежности программного обеспечения для моторной промышленности (MISRA®)[1] установил «Руководство по использованию языка C в критических системах» (MISRA C®). Когда вы генерируете код из MATLAB® код, если у вас есть Embedded Coder®можно сконфигурировать некоторые параметры генерации кода, чтобы увеличить вероятность генерации кода C и C++, которые соответствуют C:2012 MISRA и рекомендациям 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 свойство unset, и 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, а затем выполните поиск.

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

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

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

См. также

|

Похожие темы

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


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