Сгенерируйте код С с одинарной точностью Используя приложение MATLAB CODER

Этот пример показывает, как сгенерировать код С с одинарной точностью из с двойной точностью кода MATLAB® при помощи приложения MATLAB Coder™.

Предпосылки

Чтобы завершить этот пример, установите следующие продукты:

Создайте папку и скопируйте соответствующие файлы

  1. Создайте локальную рабочую папку, например, c:\ex_2ndOrder_filter.

  2. Изменитесь на папку docroot\toolbox\fixpoint\examples. В командной строке MATLAB войдите:

    cd(fullfile(docroot, 'toolbox', 'fixpoint', 'examples')) 

  3. Скопируйте ex_2ndOrder_filter.m и файлы ex_2ndOrder_filter_test.m к вашей локальной рабочей папке.

    ВводИмяОписание
    Функциональный кодex_2ndOrder_filter.mФункция MATLAB точки входа
    Тестовый файлex_2ndOrder_filter_test.m

    Скрипт MATLAB, который тестирует ex_2ndOrder_filter.m

     Функция ex_2ndOrder_filter

     ex_2ndOrder_filter_test Скрипт

Откройте приложение MATLAB CODER

  1. Перейдите к папке работы, которая содержит файл для этого примера.

  2. На вкладке MATLAB Toolstrip Apps, под Генерацией кода, кликают по значку приложения.

Выберите исходные файлы

Чтобы добавить точку входа функционируют ex_2ndOrder_filter к проекту, обзор к файлу ex_2ndOrder_filter.m, и затем нажать Open. По умолчанию приложение сохраняет информацию и настройки для этого проекта в текущей папке в файле с именем ex_2ndOrder_filter.prj.

Включите преобразование с одинарной точностью

  1. Установите числовое преобразование в Convert to single precision.

  2. Нажмите Далее, чтобы перейти к Задавать Входному шагу Типов.

    Экраны приложения ex_2ndOrder_filter.m для нарушений регулярной кодовой последовательности и проблем готовности генерации кода. Приложение не находит проблемы в ex_2ndOrder_filter.m m.

Задайте входные типы

  1. На странице Define Input Types, чтобы добавить ex_2ndOrder_filter_test как тестовый файл, обзор к ex_2ndOrder_filter_test. Нажмите Open.

  2. Нажмите Autodefine Input Types.

    Тестовый файл запускает и отображает выводы фильтра для каждого из входных сигналов. Приложение решает, что входным типом x является double(1x256).

  3. Нажмите Далее, чтобы перейти к Проверке на шаг Проблем Во время выполнения.

Проверьте на проблемы во время выполнения

Чтобы обнаружить и устранить проблемы преобразования с одинарной точностью, выполните Проверку для шага Проблем Во время выполнения.

  1. На странице Check for Run-Time Issues приложение заполняет поле тестового файла с ex_2ndOrder_filter_test, тестовый файл, что вы раньше задавали входные типы.

  2. Нажмите Check for Issues.

    Приложение генерирует MEX-функцию с одинарной точностью от ex_2ndOrder_filter. Это запускает тестовый файл ex_2ndOrder_filter_test, заменяющий вызовы ex_2ndOrder_filter с вызовами сгенерированной MEX-функции. Если приложение находит проблемы, оно предоставляет предупреждающие сообщения и сообщения об ошибке. Кликните по сообщению, чтобы подсветить проблематичный код в окне, где можно отредактировать код. В этом примере приложение не обнаруживает проблемы.

  3. Нажмите Далее, чтобы перейти к Сгенерировать Кодовой странице.

Сгенерируйте код С с одинарной точностью

  1. В диалоговом окне Generate, типе Сборки набора к Static Library.

  2. Установите язык на C.

  3. Для других настроек используйте значения по умолчанию.

  4. Чтобы сгенерировать код, нажмите Generate.

    MATLAB CODER разрабатывает проект и генерирует статическую библиотеку C и вспомогательные файлы в подпапке по умолчанию, codegen/lib/ex_2ndOrder_filter.

Просмотрите сгенерированный код C

Отображения приложения сгенерированный код для ex_2ndOrder_filter.c c.

  • С двойной точностью переменные имеют, вводят float в коде С.

  • Индекс i является целым числом.

Просмотрите потенциальные проблемы типа данных

Когда вы генерируете код с одинарной точностью, приложение позволяет подсветить потенциальных проблем типа данных в отчете генерации кода. Если приложение не может удалить с двойной точностью операция, отчет подсвечивает выражение MATLAB, которое приводит к операции.

Чтобы открыть отчет генерации кода, щелкните по ссылке Отчета Представления.

Кликните по вкладке Code Insights. Расширьте Потенциальные проблемы типа данных. Отсутствие с двойной точностью операций указывает, что не с двойной точностью операции остаются.

Связанные примеры

Больше о

Была ли эта тема полезной?