exponenta event banner

Создание кода C/C + + с улучшенным соответствием MISRA

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

  1. На странице «Создание кода» задайте для параметра «Тип построения» значение Source Code, Static Library, Dynamic Library, или Executable.

  2. Щелкните Дополнительные параметры.

  3. Щелкните MISRA Compliance (Соответствие требованиям MISRA).

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

  4. Чтобы задать для всех этих параметров рекомендуемые значения, нажмите кнопку Задать рекомендуемые значения.

    Чтобы изменить отдельный параметр, нажмите кнопку «» Все параметры «» и выполните поиск параметра.

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

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

Использование встроенного модуля bool введите сгенерированный код C++ и во избежание этих нарушений измените настройку платы аппаратных средств в объекте конфигурации с MATLAB Host Computer. Сведения об изменении этого параметра в приложении см. в разделе Свойства реализации оборудования Access с диалоговым окном. Например, для создания кода и сборки на 64-разрядной платформе Windows ® измените аппаратную плату наNone - Select device below, а затем установите для параметра Поставщик устройства значение Intel и тип устройства для x86-64 (Windows64).

См. также

|

Связанные темы

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


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