Сгенерируйте одноточные Коды С с помощью приложения 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. На вкладке Apps MATLAB Toolstrip, в разделе Code Generation, щелкните значок приложения.

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

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

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

  1. Установите Numeric Conversion значение Convert to single precision.

  2. Щелкните Next, чтобы перейти к Define Input Types шагу.

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

Определите входные типы

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

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

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

  3. Щелкните Next, чтобы перейти к Check for Run-Time Issues шагу.

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

Чтобы обнаружить и исправить проблемы преобразования с одной точностью, выполните Check for Run-Time Issues шаг.

  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. Щелкните Next, чтобы перейти на страницу Generate Code.

Сгенерируйте одноточные Коды С

  1. В диалоговом окне Generate установите Build type равным Static Library.

  2. Установите Language значение C.

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

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

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

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

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

  • Переменные двойной точности имеют тип float в коде С

  • Область индекса i - целое число.

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

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

Чтобы открыть отчет генерации кода, щелкните ссылку View Report.

Перейдите на вкладку Code Insights. Разверните Potential data type issues. Отсутствие операций двойной точности указывает, что никаких операций двойной точности не остается.

Похожие примеры

Подробнее о