Разработка библиотеки замещения кода Quick Start - Simulink

®

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

Необходимые условия

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

  • MATLAB ®

  • MATLAB Coder™

  • Simulink ®

  • Функции Simulink Coder™

  • Embedded Coder ®

  • Компилятор

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

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

Откройте Code Replacement Tool

1. Запуск сеанса работы с MATLAB.

2. Создайте или перемещайтесь (cd) в пустую папку.

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

Создайте таблицу замещения кода

1. В окне Code Replacement Tool выберите файл > New table

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

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

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

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

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

3. На правой панели, на вкладке Mapping Information, в меню Function, выберите sin.

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

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

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

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

8. Перейдите к нижней части вкладки Mapping Information и нажмите Validate entry. Инструмент проверяет вашу запись.

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

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

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

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

3. Нажмите Применить.

4. Вы также можете переоценить запись. Вернитесь на вкладку Mapping Information и нажмите Validate entry.

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

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

1. На средней панели выберите sin_dbl запись.

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

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

4. На вкладке Отображения Information, в разделе Концептуальная функция, установите тип данных входных параметров 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. В инструменте замены кода выберите файл > Generate registration file.

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. Используйте Code Replacement Viewer, чтобы проверить записи замены кода. Для примера:

crviewer('Sin Function Example')

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

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

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

  • Неправильные параметры приоритета.

3. Идентифицируйте существующую модель или создайте модель, которая включает Тригонометрический блок, который установлен в sin функция. Для примера:

4. Откройте модель и сконфигурируйте ее для генерации кода с помощью целевого устройства Embedded Coder (на основе ERT).

5. Проверьте, указана ли ваша библиотека в качестве доступной опции для Генерации кода > Интерфейс > Код библиотеки замен модели параметра конфигурации. Если это так, выберите его.

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

6. Чтобы быстро найти параметры, в Параметры конфигурации диалоговом окне Search field введите имя параметра. Сконфигурируйте отчет генерации кода для анализа замещения кода путем выбора следующих параметров:

  • Создайте отчет генерации кода

  • Автоматическое открытие отчета

  • Код-к-модели

  • Модель-к-коду

  • Результирующие блоки, инициирующие замену кода

  • Включить комментарии

  • Комментарии блока Simulink

  • Описания блоков Simulink

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

8. Сгенерируйте код для модели.

9. Проверьте результаты замены кода в разделе «Отчет о замене кода» отчета генерации кода.

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

10. Проверьте замены кода. В окне модели щелкните правой кнопкой мыши блок Trigonometric Function. Выберите C/C + + код > Перейти к C/C + + код. Откроется отчет генерации кода, в котором будет подсвечена замена кода my_sin_func.c. В этом случае генератор кода заменил sin с sin_dbl.

Подробнее о

Похожие темы