Embedded Coder® продукт расширяет MATLAB® Coder™ продукт с возможностями, которые можно использовать для разработки встроенного программного обеспечения. Можно сгенерировать код, который имеет ясность и эффективность профессионального рукописного кода. Для примера можно:
Сгенерируйте код, который является компактным и быстрым, что важно для симуляторов в реальном времени, целевых плат быстрого прототипирования, микропроцессоров, используемых в массовом производстве, и встраиваемых систем.
Настройка внешнего вида сгенерированного кода.
Оптимизируйте сгенерированный код для требований конкретного приложения.
Включите опции трассировки, которые помогают вам проверить сгенерированный код.
Продукт Embedded Coder расширяет продукт MATLAB Coder следующими опциями и оптимизациями для генерации кода C/C + +.
Цель | Настройка проекта | Свойство объекта строения кода | Дополнительная информация |
---|---|---|---|
Время выполнения | |||
Управляйте генерацией данных и операций с плавающей точкой | Support only purely-integer numbers | PurelyIntegerCode | Н/Д |
Упростите индексацию массива в циклах в сгенерированном коде | Simplify array indexing | EnableStrengthReduction | Упрощение операций умножения для индексации массивов в циклах |
Замените функции и операторы в сгенерированном коде, чтобы соответствовать требованиям к коду конкретного приложения | Code replacement library на вкладке Custom Code | CodeReplacementLibrary | Embedded Coder предлагает дополнительные библиотеки и возможность создавать и использовать пользовательский код. См. раздел Индивидуальную настройку замещения кода. |
Создание и регистрация прикладных реализаций функций и операторов | Н/Д | Н/Д | Замена кода Индивидуальной настройки |
Внешний вид кода | |||
Задайте использование однострочных или многострочных комментариев в сгенерированном коде | Comment Style | CommentStyle | Задайте стиль комментария для кода C/C + + |
Включите исходный код MATLAB в качестве комментариев с тегами трассируемости. В отчете о генерации кода теги трассируемости ссылаются на соответствующий исходный код MATLAB | MATLAB source code as comments | MATLABSourceComments | Включите комментарии в сгенерированный код C/C + + |
Сгенерируйте текст справки по функции MATLAB в баннере функции | MATLAB function help text | MATLABFcnDesc | Включите комментарии в сгенерированный код C/C + + |
Преобразуйте шаблоны if-elseif-else в операторы switch-case | Convert if-elseif-else patterns to switch-case statements | ConvertIfToSwitch | Управление стилем кода С |
Укажите, что ключевое слово extern включено в объявления сгенерированных внешних функций | Preserve extern keyword in function declarations | PreserveExternInFcnDecls | Н/Д |
Задайте уровень круглой скобки в сгенерированном коде | Parentheses | ParenthesesLevel | Н/Д |
Задайте, следует ли заменять умножения на степени двойки на подписанные левые побитовые сдвиги в сгенерированном коде | Use signed shift left for fixed-point operations and multiplication by powers of 2 | EnableSignedLeftShifts | Управляйте подписанными левыми сдвигами в сгенерированном коде |
Укажите, разрешать ли подписанные правые побитовые сдвиги в сгенерированном коде | Allow right shifts on signed integers | EnableSignedRightShifts | Н/Д |
Управляйте типами данных, приведенными в сгенерированный код | Casting mode на вкладке All Settings | CastingMode | Управляйте типами данных в сгенерированном коде |
Задайте стиль отступа для сгенерированного кода | Indent style на вкладке All Settings Indent size на вкладке All Settings | IndentStyle IndentSize | Задайте стиль отступа для кода C/C + + |
Задайте максимальное количество столбцов перед пропуском линии в сгенерированном коде | Column limit на вкладке All Settings | ColumnLimit | Н/Д |
Укажите пользовательские имена для типов данных MATLAB в сгенерированном коде | Enable custom data type replacement | EnableCustomReplacementTypes ReplacementTypes | Настройка замены типа данных |
Импортируйте пользовательские определения типов данных из внешних файлов заголовков | Import custom types from external header files | IsExtern HeaderFiles | Импорт пользовательских Определений типов из внешних файлов заголовков |
Настройка имен сгенерированных файлов C/C + + | Generated source and header file name format | CustomFileNameStr | Настройте имена файлов C/C + +, сгенерированные из кода MATLAB |
Настройка сгенерированных идентификаторов глобальных переменных | Global variables | CustomSymbolStrGlobalVar | Настройка сгенерированных идентификаторов |
Настройка сгенерированных идентификаторов глобальных типов | Global types | CustomSymbolStrType | Настройка сгенерированных идентификаторов |
Настройте сгенерированные имена полей в глобальных идентификаторах типов | Field name of global types | CustomSymbolStrField | Настройка сгенерированных идентификаторов |
Настройте сгенерированные локальные идентификаторы локальных функций | Local functions | CustomSymbolStrFcn | Настройка сгенерированных идентификаторов |
Настройте сгенерированные идентификаторы для локальных временных переменных | Local temporary variables | CustomSymbolStrTmpVar | Настройка сгенерированных идентификаторов |
Настройте сгенерированные идентификаторы для постоянных макросов | Constant macros | CustomSymbolStrMacro | Настройка сгенерированных идентификаторов |
Настройте сгенерированные идентификаторы для типов массивов EMX (Embeddable mxArray types) | EMX Array Types | CustomSymbolStrEMXArray | Настройка сгенерированных идентификаторов |
Настройте сгенерированные идентификаторы для служебных функций EMX Array (Embeddable mxArrays) | EMX Array Utility Functions | CustomSymbolStrEMXArrayFcn | Настройка сгенерированных идентификаторов |
Настройте интерфейс функции в сгенерированном коде | Initialize function required на вкладке All Settings Terminate function required на вкладке All Settings | IncludeInitializeFcn IncludeTerminateFcn | Н/Д |
Настройка файловых и функциональных баннеров | Н/Д | CodeTemplate | |
Управляйте объявлениями и определениями глобальных переменных в сгенерированном коде | Н/Д | Н/Д | |
Отладка | |||
Сгенерируйте отчет о статических метриках кода, включая сгенерированную информацию о файле, количество линий и использование памяти | Static code metrics | GenerateCodeMetricsReport | Генерация отчета по метрикам статического кода для кода, сгенерированного из кода MATLAB |
Сгенерируйте отчет о замене кода, который суммирует замены, используемые из выбранной библиотеки замещения кода | Code replacements | GenerateCodeReplacementReport | |
Выделите операции с одной точностью, двойной точностью и дорогими операциями с фиксированной точкой в отчете генерации кода | Highlight potential data type issues | HighlightPotentialDataTypeIssues | Выделите потенциальные проблемы типа данных в отчете |
Пользовательский код | |||
Замените функции и операторы в сгенерированном коде, чтобы соответствовать требованиям к коду конкретного приложения | Code replacement library | CodeReplacementLibrary | Embedded Coder предлагает дополнительные библиотеки и возможность создавать и использовать пользовательский код. См. раздел Индивидуальную настройку замещения кода. |
Создание и регистрация прикладных реализаций функций и операторов | Н/Д | Н/Д | Замена кода Индивидуальной настройки |
Верификация | |||
Интерактивно проследите между исходным кодом MATLAB и сгенерированным кодом C/C + + | Enable Code Traceability | EnableTraceability | Интерактивная трассировка между кодом MATLAB и сгенерированным кодом C/C + + |
Проверьте сгенерированный код с помощью выполнения ПО в цикле и процессора в цикле | Н/Д | VerificationMode | Верификация кода через программное обеспечение в цикле и выполнение процессора в цикле |
Отладка кода во время выполнения программы в цикле | Enable source-level debugging for SIL на панели Debugging | SILDebugging | Отладка сгенерированного кода во время выполнения SIL |
Времена выполнения профиля во время выполнения программы в цикле и процессора в цикле | Enable entry point execution profiling for SIL/PIL на панели Debugging | CodeExecutionProfiling | Профилирование времени выполнения для SIL и PIL |
Проверьте и профилируйте оптимизированный код ARM | Hardware Board на панели Hardware | Hardware | |
Запуск Polyspace® верификация сгенерированного кода C/C + + при помощи интегрированного рабочего процесса | Н/Д | Н/Д | Проверка Polyspace кода C/C + +, сгенерированного MATLAB Coder |