MATLAB® Coder™ представляет отчет генерации кода, который помогает вам к:
Отладьте проблемы генерации кода и проверьте, что ваш код MATLAB подходит для генерации кода.
Просмотрите сгенерировал код C/C++.
Проследите между исходным кодом MATLAB, и сгенерировал код C/C++.
Смотрите, как генератор кода определяет и распространяет информацию о типе для переменных и выражений в вашем коде MATLAB.
Идентифицируйте потенциальные проблемы в сгенерированном коде.
Доступ к дополнительным отчетам, доступным с Embedded Coder®.
Когда вы включаете генерацию отчета или когда ошибка происходит, генератор кода представляет отчет генерации кода. Чтобы управлять производством и открытием отчета генерации кода, используйте настройки приложения, codegen
опции или свойства объектов настройки.
В приложении MATLAB Coder:
Чтобы сгенерировать отчет, установите Always create a report на Yes
.
Если вы хотите, чтобы приложение открыло отчет для вас, установите Automatically launch a report if one is generated на Yes
.
В командной строке использовать codegen
опции:
Чтобы сгенерировать отчет, используйте -report
опция.
Чтобы сгенерировать и открыть отчет, используйте -launchreport
опция.
В качестве альтернативы свойства объектов настройки использования:
Чтобы сгенерировать отчет, установите GenerateReport
к true
.
Если вы хотите codegen
чтобы открыть отчет для вас, установите LaunchReport
к true
.
Отчет генерации кода называют report.mldatx
. Это расположено в html
подпапка генерации кода вывела папку. Если у вас есть MATLAB R2018a или позже, можно открыть report.mldatx
файл путем двойного клика по нему.
Просмотрите ошибку генерации кода, предупреждение и информационные сообщения на вкладке All Messages. Чтобы подсветить исходный код для ошибки или предупреждения, кликните по сообщению. Это - лучшая практика, чтобы обратиться к первому сообщению, потому что последующие ошибки и предупреждения могут быть связаны с первым сообщением.
Просмотрите компиляцию и соединение ошибок и предупреждений на вкладке Build Logs. Генератор кода обнаруживает предупреждения компиляции только для MEX выход или если вы используете поддерживаемый компилятор для других типов выхода. См. Поддерживаемые Компиляторы.
Отчет перечисляет исходные функции MATLAB и сгенерированные файлы. В панели MATLAB Source представление Function List организует функции согласно содержанию файла. Чтобы визуализировать функции согласно структуре вызова, используйте представление Call Tree.
Чтобы просмотреть функцию в панели кода отчета, кликните по функции в списке. Нажатие на функцию открывает файл, который содержит функцию. Чтобы отредактировать выбранный файл в редакторе MATLAB, нажмите Edit in MATLAB или кликните по номеру строки в панели кода.
Если вы имеете Embedded Coder и генерируете отчет с включенной трассируемостью, чтобы просмотреть исходный код и сгенерированный код друг рядом с другом в панели кода, нажмите Trace Code. Можно в интерактивном режиме проследить между исходным кодом и сгенерированным кодом. Смотрите В интерактивном режиме Трассировку Между кодом MATLAB и Сгенерированным Кодом C/C++ (Embedded Coder).
Если вы хотите переместить сгенерированные файлы для автономного кода (библиотека или исполняемый файл) к другой среде разработки, можно поместить их в zip-файл путем нажатия на Package Code.
Когда функция вызвана с различными типами входных параметров, или класс использует различные типы для своих свойств, генератор кода производит специализации. В панели MATLAB Source пронумерованные функции (или классы) указывают на специализации. Например:
Если вы преобразуете код MATLAB с плавающей точкой в фиксированную точку код MATLAB, и затем генерируете фиксированную точку код C/C++, панель MATLAB Source перечисляет исходные функции MATLAB и функции MATLAB фиксированной точки. Например:
Чтобы просмотреть функцию MATLAB в панели кода, кликните по имени функции в панели MATLAB Source. В панели кода, когда вы делаете паузу на переменной или выражении, подсказка отображает информацию о своем размере, введите, и сложность. Кроме того, подсветка синтаксиса помогает вам идентифицировать элементы синтаксиса MATLAB и определенные атрибуты генерации кода, такой как, является ли функция значением внешних параметров или является ли аргумент постоянным.
Отчет идентифицирует внешнюю функцию с фиолетовым текстом. Подсказка указывает, что функция является значением внешних параметров.
Оранжевый текст указывает на аргумент константы времени компиляции к функции точки входа или специализированной функции. Подсказка включает постоянное значение.
Знание значения аргумента константы помогает вам изучить сгенерированные функциональные подписи. Это также помогает вам видеть, когда генерация кода создает функциональные специализации для различных значений аргумента константы.
Чтобы экспортировать значение в переменную в рабочей области, кликните по Значку экспорта.
Вкладка Variables предоставляет информацию о переменных для выбранной функции MATLAB. Чтобы выбрать функцию, кликните по функции в панели MATLAB Source.
Таблица переменных показывает:
Класс, размер и сложность
Свойства фиксированных точек
Разрежен ли массив
Размещение массивов
Эта информация помогает вам отладить ошибки, такие как ошибки несоответствия типов, и изучить, как генератор кода распространяет типы и представляет данные в сгенерированном коде.
Эта таблица описывает символы, значки и другие индикаторы в таблице переменных.
Столбец в таблице переменных | Индикатор | Описание |
---|---|---|
Имя | расширитель | Переменная имеет элементы или свойства, которые вы видите путем нажатия на расширитель. |
Имя | {:} | Однородный массив ячеек (все элементы имеют те же свойства). |
Имя | {n} | n элемент th неоднородного массива ячеек. |
Класс | v > n | v снова используется с различным классом, размером и сложностью. Номер n идентифицирует повторное использование с уникальным набором свойств. Когда вы делаете паузу на переименованной переменной, отчет подсвечивает только экземпляры этой переменной, которые совместно используют класс, размер и сложность. Смотрите Повторное использование Та же Переменная с Различными Свойствами. |
Размер | :n | Массив переменного размера с верхней границей n . |
Размер | :? | Массив переменного размера без верхней границы. |
Размер | курсив | Массив переменного размера, размерности которого не изменяют размер во время выполнения. |
Класс | sparse префикс | Разреженный массив. |
Класс | complex префикс | Комплексное число. |
Класс | Фиксированная точка. Чтобы видеть свойства фиксированной точки, кликните по значку. |
Эта таблица описывает значки, которые указывают на размещение массивов в таблице переменных.
Значок | Описание |
---|---|
Упорядоченное по строкам размещение массивов. | |
Упорядоченное по столбцам размещение массивов. | |
Смесь упорядоченных по строкам и упорядоченных по столбцам размещений. |
Смотрите упорядоченные по строкам и упорядоченные по столбцам размещения массивов.
Вы можете проследить между исходным кодом MATLAB и сгенерировали код C/C++ при помощи одного из этих методов:
В интерактивном режиме визуализируйте отображение между кодом MATLAB и сгенерированным кодом. Чтобы получить доступ к интерактивной трассировке, в отчете, нажимают Trace Code.
Кнопка Trace Code включена, только если у вас есть Embedded Coder, и вы включили трассируемость кода когда вы сгенерированный код. Смотрите В интерактивном режиме Трассировку Между кодом MATLAB и Сгенерированным Кодом C/C++ (Embedded Coder).
Включайте исходный код как комментарии в сгенерированном коде C/C++.
В комментарии генератор кода производит тег, который помогает вам найти соответствующий исходный код MATLAB. Если у вас есть Embedded Coder, тег является ссылкой на исходный код. Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.
Генератор кода может обнаружить и сообщить о проблемах, которые могут потенциально произойти в сгенерированном коде. Просмотрите сообщения на вкладке Code Insights. Проблемы включают:
Разности потенциалов между поведением сгенерированного кода и поведением кода MATLAB. Отчет включает в себя сообщения разностей потенциалов, только если вы включили создание отчетов разностей потенциалов. Смотрите, что Разности потенциалов Сообщают.
Потенциальный тип данных выходит в сгенерированном коде, таком как операции с двойной точностью и с одинарной точностью.
Отчет включает в себя потенциальные проблемы типа данных, только если у вас есть Embedded Coder, и вы включили потенциальное создание отчетов проблем типа данных. Если у вас есть Fixed-Point Designer™, отчет также идентифицирует дорогие операции фиксированной точки. Смотрите Проблемы Типа данных Потенциала Подсветки в Отчете (Embedded Coder).
Потенциальные упорядоченные по строкам проблемы. См. Проект Кода для Упорядоченного по строкам Размещения Массивов.
Автоматические проблемы распараллеливания. Смотрите Автоматически Параллелизируют циклы for в Сгенерированном коде.
Вкладка Summary может иметь ссылки на эти дополнительные отчеты:
Статический метрический отчет кода (требует Embedded Coder). Смотрите Генерацию Статического Метрического Отчета Кода для Кода, Сгенерированного из кода MATLAB (Embedded Coder).
Заменяющий отчет кода (требует Embedded Coder). Смотрите Проверяют Заменяющую Библиотеку Кода (Embedded Coder).
Отчет преобразования фиксированной точки (требует Fixed-Point Designer). Смотрите Преобразуют код MATLAB в код С Фиксированной точки.