exponenta event banner

Разработка библиотеки быстрого запуска

В этом примере показано, как разработать библиотеку замены кода, которая включает запись для создания кода замены для математической функции. sin. Используется инструмент замены кода.

Предпосылки

Для завершения этого примера установите следующее программное обеспечение:

  • MATLAB ®

  • MATLAB Coder™

  • Встроенный кодер ®

  • Компилятор C

Инструкции по установке продуктов MathWorks ® см. в разделе Установка и лицензирование. Если вы установили MATLAB и хотите узнать, какие другие продукты MathWorks установлены, в окне команд введитеver.

Список поддерживаемых компиляторов см. в разделе https://www.mathworks.com/support/compilers/current_release/.

Открыть инструмент замены кода

  1. Запустите новый сеанс MATLAB.

  2. Создание или навигация (cd) в пустую папку.

  3. В командной строке введите crtool команда. Откроется окно Инструмент замены кода (Code Replacement Tool).

Создать таблицу замены кода

  1. В окне Инструмент замены кода выберите Файл > Новая таблица.

  2. На правой панели присвойте таблице имя crl_table_sinfcn и нажмите «Применить». Позднее при сохранении таблицы инструмент сохраняет ее с именем файла. crl_table_sinfcn.m.

Создать запись таблицы

Создание табличной записи, сопоставляющей sin функция с double входные данные и double вывод в пользовательскую функцию реализации.

  1. На левой панели выберите таблицу crl_table_sinfcn. Затем выберите Файл > Новая запись > Функция. Новая запись появится в средней области, первоначально без имени.

  2. В средней области выберите новую запись.

  3. На правой панели на вкладке «Информация о сопоставлении» в меню «Функция» выберите sin.

  4. Для параметра «Оставить алгоритм» установлено значение Unspecifiedи оставьте в группе концептуальных функций значения по умолчанию.

  5. В группе Функция замены назовите функцию замены. sin_dbl.

  6. Оставьте остальные параметры в группе Замещающая функция заданными значениями по умолчанию.

  7. Нажмите кнопку «Применить». Инструмент обновляет предварительный просмотр сигнатуры функции, чтобы отразить указанное имя функции замены.

  8. Выполните прокрутку до нижней части вкладки «Информация о сопоставлении» и щелкните Проверить запись. Инструмент проверяет вашу запись.

На следующем рисунке показана полная информация о сопоставлении.

Укажите сведения о построении для кода замены

  1. На вкладке Информация о сборке для параметра Файл заголовка реализации введите sin_dbl.h.

  2. Оставьте для остальных параметров значения по умолчанию.

  3. Нажмите кнопку «Применить».

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

Создание другой записи таблицы

Создание записи, сопоставляющей sin функция с single входные данные и double вывод в пользовательскую функцию реализации с именем sin_sgl. Создайте запись путем копирования и вставки sin_dbl вход.

  1. В средней области выберите sin_dbl вход.

  2. Выберите меню «Правка» > «Копировать»

  3. Выберите меню «Правка» > «Вставить»

  4. На вкладке «Информация о сопоставлении» в разделе «Концептуальная функция» задайте тип данных входного аргумента. u1 кому single.

  5. В разделе Функция замены назовите функцию sin_sgl. Задать тип данных входного аргумента u1 кому single.

  6. Нажмите кнопку «Применить». Обратите внимание на изменения, отображаемые для предварительного просмотра подписи функции.

  7. На вкладке Информация о сборке для параметра Файл заголовка реализации введите sin_sgl.h. Оставьте для остальных параметров значения по умолчанию и нажмите кнопку Применить.

Проверка таблицы замены кода

  1. Выберите Действия > Проверить таблицу.

  2. Если инструмент сообщает об ошибках, исправьте их и повторите проверку. Повторяйте исправление и проверку ошибок до тех пор, пока инструмент не сообщит об ошибках. На следующем рисунке показан отчет о проверке.

Сохранить таблицу замены кода

Сохраните таблицу замены кода в файле MATLAB в рабочей папке. Выберите «Файл» > «Сохранить таблицу». По умолчанию в качестве имени файла используется имя таблицы. В этом примере инструмент сохраняет таблицу в файле crl_table_sinfcn.m.

Просмотр определения таблицы замены кода

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

Чтобы просмотреть его, в MATLAB или другом текстовом редакторе откройте файл crl_table_sinfcn.m.

Создание файла регистрации

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

  1. В инструменте замены кода выберите «Файл» > «Создать файл регистрации».

  2. В диалоговом окне «Создание файла регистрации» измените поля диалогового окна в соответствии со следующим рисунком и нажмите кнопку «ОК».

  3. В диалоговом окне «Выбор местоположения для сохранения файла регистрации» укажите местоположение файла регистрации. Расположение должно находиться в пути MATLAB или в текущей рабочей папке. Сохраните файл. Инструмент сохраняет файл как rtwTargetInfo.m.

Регистрация таблицы замены кода

В командной строке введите:

RTW.TargetRegistry.getInstance('reset');

Проверка и тестирование замены кода

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

  1. Проверьте наличие ошибок. В командной строке вызовите файл определения таблицы. Например:

    Если в файле определения существует ошибка, вызов инициирует появление сообщения. Исправьте ошибку и повторите попытку.

    tbl = crl_table_sinfcn
    
    tbl =
    
    TflTable with properties:
                   Version: '1.0'
           ReservedSymbols: []
       StringResolutionMap: []
                AllEntries: [2x1 RTW.TflCFunctionEntry]
               EnableTrace: 1|
  2. Используйте средство просмотра замены кода для проверки записей замены кода. Например:

    crviewer('Sin Function Example')

    В средстве просмотра выберите записи в таблице и убедитесь, что содержимое соответствует ожидаемому. Средство просмотра может помочь в обнаружении таких проблем, как:

    • Неправильный порядок аргументов.

    • Имена концептуальных аргументов, не соответствующие ожидаемому генератором кода.

    • Неправильные настройки приоритета.

  3. Определите существующий или создайте новый код MATLAB, который вызывает sin функция. Например:

    function y = my_sin_fnc(x)
      y = sin(x);
    end
  4. Откройте приложение Кодер MATLAB.

  5. Добавление функции, включающей вызов sin в качестве файла точки входа. Например, добавить my_sin_func.m. Приложение создает проект с именем my_sin_func.prj.

  6. Нажмите кнопку Далее (Next), чтобы перейти к шагу Определить тип ввода (Define Input Type). Определите типы для входов функции точки входа.

  7. Нажмите кнопку Далее, чтобы перейти к шагу Проверка ошибок времени выполнения. Этот шаг необязателен. Однако рекомендуется выполнять этот шаг. Укажите тестовый файл, вызывающий функцию начальной точки. Приложение генерирует функцию MEX из исходной функции. Затем приложение запускает тестовый файл, заменяя вызовы функции MATLAB вызовами сгенерированной функции MEX.

  8. Нажмите кнопку Далее, чтобы перейти к шагу Создать код. Чтобы открыть диалоговое окно «Генерировать», щелкните стрелку «Генерировать».

  9. Задайте тип построения для создания библиотеки или исполняемого файла.

  10. Щелкните Дополнительные параметры.

  11. Настройте генератор кода для использования библиотеки замены кода. На вкладке Пользовательский код (Custom Code) задайте для параметра Библиотека замены кода (Code replacement library) имя библиотеки. Например, Sin Function Example.

  12. Настройте отчет о создании кода. На вкладке Отладка (Debug) установите параметры Всегда создавать отчет (Always create a report), Замены кода (Code replacements) и Автоматически запускать отчет, если он создан.

  13. Сконфигурируйте генератор кода только для генерации кода. В поле Тип построения выберите Исходный код. Перед созданием исполняемого файла необходимо просмотреть замены кода в созданном коде.

  14. Щелкните Создать (Generate), чтобы создать код C и отчет.

  15. Просмотрите результаты замены кода в разделе Отчет о замене кода отчета о создании кода.

    Отчет указывает, что генератор кода обнаружил совпадение и применил код замены для функции sin_dbl.

  16. Просмотрите замены кода. В отчете выберите функцию MATLAB, которая инициировала замену. my_sin_func.m. Открывается редактор MATLAB, который выделяет вызов функции, инициирующий замену кода.

Связанные темы