exponenta event banner

Создание кода MATLAB с фиксированной точкой для нескольких функций точки входа

Если конечная цель состоит в создании библиотечных функций C/C + + с фиксированной точкой, создание одной библиотеки C/C + + для нескольких исходных функций MATLAB ® позволяет:

  • Создайте библиотеки C/C + +, содержащие несколько скомпилированных файлов MATLAB, для интеграции с более крупными приложениями C/C + +. Для создания кода C/C + + требуется лицензия MATLAB Coder™.

  • Эффективное совместное использование кода библиотечными функциями.

  • Обмен данными между библиотечными функциями с использованием общей памяти.

Примечание

Если какая-либо из функций точки входа в проекте использует общую память (например, постоянные данные), возникнет ошибка. В этом случае следует переписать код, чтобы избежать вызова функций с постоянными данными из нескольких точек входа.

Пример 1. Преобразовать две функции точек входа в фиксированную точку с помощью приложения конвертера точек входа

В этом примере преобразуются две функции точки входа: ep1 и ep2, в фиксированную точку.

  1. В локальной папке, доступной для записи, создайте функции ep1.m и ep2.m.

    function y = ep1(u) %#codegen
    y = u;
    end
    function y = ep2(u, v) %#codegen
    y = u + v;
    end

  2. В той же папке создайте тестовый файл, ep_tb.m, что вызывает обе функции.

    % test file for ep1 and ep2
    u = 1:100;
    v = 5:104;
    z = ep1(u);
    y = ep2(v,z);
    

  3. В коллекции приложений откройте приложение Fixed-Point Converter.

  4. Чтобы добавить первую функцию точки входа, ep1, в проект, на странице «Выбор исходных файлов» перейдите к ep1 и нажмите кнопку «Открыть».

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

  5. Щелкните Добавить функцию точки входа (Add Entry-Point Function) и добавьте вторую функцию точки входа. ep2. Нажмите кнопку Далее.

  6. На странице Define Input Types введите тестовый файл, выполняющий две функции точки входа. Выполните обзор, чтобы выбрать ep_tb файл. Щелкните Автоопределить типы ввода (Autodefine Input Types).

  7. Нажмите кнопку Далее. Приложение создает инструментальную функцию MEX для исходной функции MATLAB. На странице Преобразовать в фиксированную точку (Convert to Fixed-Point) щелкните Моделирование (Simulate), чтобы смоделировать функции точки входа, собрать информацию о диапазоне и получить предлагаемые типы данных.

  8. Щелкните Преобразовать (Convert).

    Функции начального уровня ep1 и ep2 преобразовать в фиксированную точку. На панели Выходные файлы (Output Files) перечислены созданные файлы с фиксированной точкой и оболочки для обеих функций точки входа.

  9. Нажмите кнопку Далее. Страница «Завершение рабочего процесса» содержит сводку проекта. Созданный отчет о преобразовании с фиксированной точкой содержит отчеты для обеих функций точки входа. Приложение сохраняет созданные файлы во вложенной папке codegen/ep1/fixpt.