Продукт 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 шаблоны в операторов case оператора switch | Convert if-elseif-else patterns to switch-case statements | ConvertIfToSwitch | Управление стилем кода С |
Укажите, что ключевое слово экстерна включено в объявления сгенерированных внешних функций | Preserve extern keyword in function declarations | PreserveExternInFcnDecls | Нет данных |
Задайте уровень parenthesization в сгенерированном коде | 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 (Встраиваемые типы mxArray) | EMX Array Types | CustomSymbolStrEMXArray | Настройте сгенерированные идентификаторы |
Настройте сгенерированные идентификаторы для Массива EMX (Встраиваемый 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 | Программное обеспечение Code Verification Through в цикле и процессор в выполнении цикла |
Отладьте код во время программного обеспечения в выполнении цикла | 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 |