exponenta event banner

Создание кода одинарной точности C с помощью приложения кодера MATLAB

В этом примере показано, как создать код C с одинарной точностью из кода 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

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

  2. На вкладке Приложения MATLAB Toolstrip в разделе Создание кода щелкните значок приложения.

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

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

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

  1. Задать числовое преобразование в 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. Нажмите кнопку Далее, чтобы перейти к шагу Проверка ошибок времени выполнения.

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

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

  1. На странице Проверка ошибок времени выполнения приложение заполняет поле тестового файла ex_2ndOrder_filter_test, тестовый файл, который использовался для определения типов ввода.

  2. Щелкните Проверить наличие проблем.

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

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

Создание кода C с одинарной точностью

  1. В диалоговом окне «Создание» задайте для параметра «Тип построения» значение Static Library.

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

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

  4. Чтобы создать код, нажмите кнопку «Создать».

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

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

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

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

  • Индекс i - целое число.

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

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

Чтобы открыть отчет о создании кода, щелкните ссылку Просмотр отчета.

Перейдите на вкладку Анализ кода. Разверните Возможные проблемы с типами данных. Отсутствие операций двойной точности указывает на то, что операции двойной точности не остаются.

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

Подробнее