Заменяющая разработка библиотеки быстрого запуска кода - Simulink®

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

Предпосылки

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

  • MATLAB®

  • MATLAB Coder™

  • Simulink®

  • Simulink Coder™

  • Embedded Coder®

  • Компилятор

Для получения инструкций по установке продуктов MathWorks® см. документацию по установке MATLAB. Если вы установили MATLAB и хотите видеть то, что другие Продукты Mathworks установлены в Командном окне, введите ver.

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

Откройте заменяющий инструмент кода

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

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

3. В командной строке введите команду crtool. Заменяющее Окно инструментов Кода открывается.

Составьте заменяющую таблицу кода

1. В Заменяющем Окне инструментов Кода выберите таблицу File> New

2. На правой панели назовите таблицу crl_table_sinfcn и нажмите Apply. Когда вы сохранили таблицу, инструмент сохраняет ее с именем файла crl_table_sinfcn.m.

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

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

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

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

3. На правой панели, на вкладке Mapping Information, из Меню функции, выбирают sin.

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

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

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

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

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

Следующие данные показывают завершенную информацию об отображении.

Укажите информацию сборки для заменяющего кода

1. На вкладке Build Information, для параметра заголовочного файла Реализации, вводят sin_dbl.h.

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

3. Нажмите Apply.

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

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

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

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

2. Выберите Edit> Copy.

3. Выберите Edit> Paste.

4. На вкладке Mapping Information, в Концептуальном функциональном разделе, устанавливает тип данных входного параметра u1 к single.

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

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

7. На вкладке Build Information, для параметра заголовочного файла Реализации, вводят sin_sgl.h. Оставьте остающийся набор параметров значениям по умолчанию и нажмите Apply.

Подтвердите заменяющую таблицу кода

1. Выберите таблицу Actions> Validate.

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

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

Сохраните заменяющую таблицу кода к файлу MATLAB в вашей рабочей папке. Выберите таблицу File> Save. По умолчанию инструмент использует имя таблицы, чтобы назвать файл. В данном примере инструмент сохранил таблицу в файле crl_table_sinfcn.m.

Рассмотрите заменяющее табличное определение кода

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

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

Сгенерируйте регистрационный файл

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

1. В Заменяющем Инструменте Кода выберите File> регистрационный файл Generate.

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. Идентифицируйте существующую модель или создайте модель, которая включает блок Trigonometric, который установлен в функцию sin. Например:

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

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

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

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

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

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

  • Код к модели

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

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

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

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

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

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

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

9. Рассмотрите заменяющие результаты кода в разделе Code Replacement Report отчета генерации кода.

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

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

Больше о

Похожие темы