Ассоциация Надежности Motor Industry Software (MISRA®) [1] установила “Инструкции для Использования языка C в Критических Системах” (MISRA C®). Когда вы генерируете код из кода MATLAB®, если у вас есть Embedded Coder®, можно сконфигурировать определенные параметры генерации кода, чтобы увеличить вероятность генерации кода, который выполняет инструкции MISRA C:2012.
Создайте объект настройки генерации кода Embedded Coder.
cfg = coder.config('lib', 'ecoder', true);
Установите свойства, перечисленные в таблице на значения для увеличенного MISRA C соответствие.
| Свойство | Значение для увеличенного MISRA C соответствие |
|---|---|
CastingMode | 'Standards' |
DataTypeReplacement | 'CoderTypedefs' |
DynamicMemoryAllocation | 'off' |
EnableRuntimeRecursion | false |
EnableSignedLeftShifts | false |
EnableSignedRightShifts | false |
GenerateDefaultInSwitch | true |
ParenthesesLevel | 'Maximum' |
TargetLangStandard
| 'C99 (ISO)' для C, 'C++03 (ISO)' для C++ |
Чтобы установить эти свойства за один шаг, используйте coder.setupMISRAConfig.
coder.setupMISRAConfig(cfg);
Также установите свойства индивидуально. Например:
cfg.CastingMode = 'Standards';Передайте объект настройки codegen при помощи опции -config.
codegen myFunction -config cfg ...
На странице Generate Code, набор Build type к Source Code, Static Library, Dynamic Library или Executable.
Нажмите More Settings.
Нажмите MISRA Compliance.
Отображения приложения настройки, которые могут повлиять на MISRA C соответствие.
Чтобы установить все эти настройки к рекомендуемым значениям, нажмите Set to Recommended Values.
Чтобы изменить отдельную установку, нажмите All Settings, и затем ищите установку.
По умолчанию Код С++, который вы генерируете, использует пользовательское определение типа для 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).
coder.EmbeddedCodeConfig | coder.setupMISRAConfig
[1] MISRA и MISRA C являются зарегистрированными торговыми марками MIRA Ltd., сохраненной от имени Консорциума MISRA.