При выборе системного целевого файла (например, grt.tlc), выбор определяет среду выполнения и функции генерации кода. Определите функции целевого системного файла, соответствующие целям рабочего процесса создания кода.
Генератор кода использует системный целевой файл для создания кода, предназначенного для выполнения на определенном целевом оборудовании или в определенной операционной системе. Системный целевой файл вызывает другие файлы среды выполнения. Дополнительные сведения о настройке параметров генерации кода модели для целевого оборудования см. в разделе Настройка параметров среды выполнения.
Различные типы системных целевых файлов поддерживают выбор сгенерированных функций кода. В системном целевом файле значение CodeFormat Переменная TLC и соответствующая rtwgensettings.DerivedFrom значение поля определяет тип целевого файла системы и сгенерированные функции кода. В этих вариантах решения по управлению созданием кода применяются в нескольких точках процесса создания кода. Варианты выбора включают в себя необходимость и способ создания сборки модели:
Определенные структуры данных (например, SimStruct или rtModel)
Статический или динамический код выделения памяти
Вызов интерфейса для сгенерированных функций модели
Для разработки пользовательских системных целевых файлов, CodeFormat значение различается среди целей формирования кода:
Если системный целевой файл не содержит значения для CodeFormat Переменная TLC, значение по умолчанию: RealTime для общего целевого объекта в реальном времени (GRT). Передача rtwgensettings.DerivedFrom значение поля - grt.tlc (значение по умолчанию).
Если вы разрабатываете пользовательский целевой системный файл и у вас есть программное обеспечение Embedded Coder, попробуйте установить CodeFormat Значение переменной TLC для Embedded-C для встроенной цели реального времени (ERT). Передача rtwgensettings.DerivedFrom значение поля - ert.tlc. Целевой файл системы ERT поддерживает больше сгенерированных функций кода, чем целевой файл системы GRT.
В этом примере показано, как значение для CodeFormat Переменная TLC и соответствующая rtwgensettings.DerivedFrom значение поля устанавливается в ert.tlc.
%assign CodeFormat = "Embedded-C" /% BEGIN_RTW_OPTIONS rtwgensettings.DerivedFrom = 'ert.tlc'; END_RTW_OPTIONS %/
Примечание
Используйте значение для CodeFormat Переменная TLC с соответствующей ей rtwgensettings.DerivedFrom значение поля для создания кода модели. Если значение не выбрано явно, применяются значения по умолчанию. Для rtwgensettings.DerivedFrom поле, использование 'ert.tlc' или 'grt.tlc'. Дополнительные сведения см. в разделе Структура целевого файла системы.
Описание оптимизированного интерфейса вызова, созданного по умолчанию для целевых файлов системы GRT и ERT, см. в разделе Настройка генерации кода C для функций точек входа модели.
Генерация кода с целевыми файлами системы GRT и ERT использует структуру данных модели в реальном времени (rtModel). Эта структура инкапсулирует специфичную для модели информацию в гораздо более компактной форме, чем структура моделирования. SimStruct. Многие эффективные функции генерируемого кода зависят от генерации rtModel вместо SimStruct, в том числе:
Целочисленные абсолютные и истекшие услуги синхронизации
Независимые таймеры для асинхронных задач
Создание улучшенного кода C API для мониторинга сигналов, состояний и параметров
Сокращение структуры данных для минимизации ее размера (только целевые системные файлы, полученные из ERT)
Для описания rtModelструктура данных, см. раздел Структура данных модели в реальном времени.
С помощью обозревателя системных целевых файлов можно выбрать один из нескольких целевых системных файлов. Этот выбор позволяет экспериментировать с опциями конфигурации и сохранять модель с различными конфигурациями.
Нельзя создавать или создавать код для целевых файлов системы, отличной от GRT, если в системе нет необходимого программного обеспечения. Например, требуется Embedded Coder ® для целевых файлов системы ERT, Simulink ® Desktop Real-Time™ для целевых файлов системы SLDRT и т. д.
При выборе системного целевого файла для модели выбирается либо подход к цепочке инструментов, либо подход к шаблону makefile для управления процессом построения. Дополнительные сведения об этих подходах см. в разделах Выбор подхода построения и настройка процесса построения.
Системные целевые файлы, доступные из обозревателя системных целевых файлов
Поддерживаемый целевой файл системы | Имена файлов | Ссылка |
|---|---|---|
Встроенный кодер (для ПК или UNIX ®) |
| Настройка целевого системного файла (встроенный кодер) |
Создание файла решения Visual C++ ® для встроенного кодера |
(Требуется | Настройка целевого системного файла (встроенный кодер) |
Встроенный кодер для AUTOSAR |
| Разработка модели, соответствующей стандарту AUTOSAR (встроенный кодер) |
Общий режим реального времени (для платформ PC или UNIX) |
| |
Создание файла решения Visual C++ |
(Требуется | |
Быстрое моделирование (по умолчанию для платформ PC или UNIX) |
| |
Быстрое моделирование для компилятора LCC |
| |
Быстрое моделирование для платформ UNIX |
| |
Быстрое моделирование для компилятора Visual C++ |
| |
S-функция для платформ PC или UNIX |
| |
S-функция для LCC |
| |
S-функция для платформ UNIX |
| |
S-функция для компилятора Visual C++ |
| |
ASAM-ASAP2 Определение данных |
(Будет удален в следующем выпуске. См. раздел Создание файлов калибровки ASAP2 и CDF для получения информации о создании файлов A2L) | |
Настольный компьютер Simulink в реальном времени |
| Установка параметров генерации кода внешнего режима (Simulink Desktop Real-Time) |
Симулинк Real-Time™ |
| Панель параметров Simulink в реальном времени (Simulink Real-Time) |
Примечание
Чтобы создать и построить файл решения Visual C++ (.sln) с конфигурацией Debug, выберите RTW.MSVCBuild в поле Template makefile.
Генератор кода создает два стиля кода. Один стиль кода подходит для быстрого прототипирования (и моделирования с использованием генерации кода). Другой стиль подходит для встраиваемых приложений. Эта таблица сопоставляет целевые системные файлы с соответствующими стилями кода.
Стили кода, перечисленные в целевом файле системы
Системный целевой файл | Стиль кода | Цель |
|---|---|---|
Встроенный кодер во встроенном режиме реального времени (ERT) | Вложенный | Отправная точка для разработки встраиваемых приложений генерируемого кода C/C + +. |
Simulink Coder™ общий режим реального времени (GRT) | Быстрое создание прототипов | Отправная точка для создания целевого оборудования быстрого прототипирования, в котором не используются примитивы задач операционной системы реального времени, и для проверки созданного кода C/C + + на настольном компьютере. |
Быстрое моделирование (RSim) | Быстрое создание прототипов | Обеспечивает моделирование в режиме, отличном от реального времени, на настольном компьютере и высокоскоростное или пакетное моделирование. |
S-функция | Быстрое создание прототипов | Создает S-функцию C MEX для моделирования в другой модели Simulink. |
Настольный компьютер Simulink в реальном времени | Быстрое создание прототипов | Запуск модели в режиме реального времени на уровне прерываний, в то время как настольный компьютер работает под управлением Microsoft ® Windows ® в фоновом режиме. |
Симулинк в реальном времени | Быстрое создание прототипов | Запускает модель в реальном времени на настольном компьютере с ядром Simulink Real-Time. |
Сторонние поставщики предоставляют дополнительные целевые системные файлы для поддержки создания кода для своих продуктов. Дополнительные сведения о продуктах сторонних производителей см. на веб-сайте поставщика или на веб-странице программы MathWorks Connections: https://www.mathworks.com/products/connections.
Процесс создания кода для целевых файлов системы в реальном времени (например, GRT) обеспечивает множество встроенных оптимизаций кода. Выбор целевого системного файла на основе ERT обеспечивает более широкие возможности, чем GRT. Выбор целевого файла системы определяет доступные функции для продукта генерации кода. При выборе цели создания кода, соответствующей процессу разработки, используйте эту таблицу для сравнения функций создания кода, доступных в Simulink Coder, и функций, доступных в Embedded Coder.
Сравнение функций генерации кода для кодера Simulink с встроенным кодером
Особенность | Симулинк-кодер | Встроенный кодер |
|---|---|---|
|
|
|
Пользовательские классы хранения (CSC) | При создании кода CSC игнорируются. Объектам назначается CSC по умолчанию | Поддерживается генерация кода с CSC |
Отчет о создании кода HTML | Базовый отчет по созданию HTML-кода | Расширенный отчет с дополнительными подробностями и гиперссылками на модель |
Форматирование символов | Символы (для сигналов, параметров и т.д.) генерируются в соответствии с жестко закодированными значениями по умолчанию | Детальный контроль над сгенерированными символами |
Определяемая пользователем максимальная длина идентификатора для созданных символов | Поддержанный | Поддержанный |
Формирование функции завершения | Произведенный | Опция для подавления функции завершения |
Комбинированная функция вывода/обновления | Создаются отдельные функции вывода/обновления | Возможность создания комбинированной функции вывода/обновления |
Оптимизированная инициализация данных | Недоступно | Параметры подавления генерации ненужного кода инициализации для памяти с нулевым значением, портов ввода-вывода и т.д. |
Формирование комментариев | Основные параметры для включения или подавления генерации комментариев | Опции для включения описаний блоков Simulink, описаний объектов Stateflow ® и описаний объектов данных Simulink в комментарии |
Функции упаковки модулей (MPF) | Не поддерживается | Расширенные возможности настройки кода См. раздел «Имена типов управляющих данных в сгенерированном коде» (встроенный кодер) и «Свойства объекта данных MPT» (встроенный кодер). |
Файл заголовка типов данных, оптимизированных для целевого файла системы | Требуется полное | Генерирует оптимизированные |
Определяемые пользователем типы | Определяемые пользователем типы по умолчанию для базовых типов при создании кода | При создании кода поддерживаются псевдонимы определяемых пользователем типов данных |
Группировка ставок | Не поддерживается | Поддержанный |
Автоматическое формирование основного программного модуля | Не поддерживается. Предусмотрен статический основной программный модуль. | Поддерживается автоматизированная и настраиваемая генерация основного программного модуля (также доступна статическая основная программа) |
Многократное (многоэкземплярное) создание кода | Возможность создания многократно используемого кода с динамическим выделением памяти | Возможность создания многократно используемого кода со статическим или динамическим выделением памяти |
Параметры программных ограничений | Включена поддержка чисел с плавающей запятой, комплексных и нефиксированных чисел | Параметры для включения или отключения поддержки чисел с плавающей запятой, комплексных и нефиксированных чисел |
Срок службы приложения | По умолчанию: | Указанный пользователем. Определяет наиболее эффективный размер слова для целочисленных таймеров |
Генерация кода ANSI ® -C/C + + | Поддержанный | Поддержанный |
Генерация кода ISO ® -C/C + + | Поддержанный | Поддержанный |
Формирование кода GNU ® -C/C + + | Поддержанный | Поддержанный |
Создать скалярные встроенные параметры как | Не поддерживается | Поддержанный |
Модификатор имени переменной файла MAT | Поддержанный | Поддержанный |
Обмен данными: C API, ASAP2, внешний режим | Поддержанный | Поддержанный |
Генератор кода поддерживает выбор сгенерированных функций кода для различных типов целевых системных файлов. В каждом системном целевом файле значение CodeFormat Переменная TLC идентифицирует набор функций.
В этой таблице показано, как различные целевые системные файлы поддерживают приложения.
Приложение | Системный целевой файл (STF) |
|---|---|
Фиксированное или переменное ускорение | RSIM, S-функция, ссылка на модель |
Развертывание в режиме реального времени с фиксированным шагом | GRT, ERT, Simulink в реальном времени, Simulink Desktop в реальном времени,... |
В этой таблице представлены различные опции, доступные для каждого выбора целевого файла системы, с указанными исключениями.
Функции, поддерживаемые в коде, создаваемом для системных целевых файлов (STF)
| Системные целевые файлы (STF) | ||||||||
|---|---|---|---|---|---|---|---|---|
Особенность | grt.tlc (См. примечание 1.) | ert.tlc (См. примечание 1.) | ert_shrlib.tlc (См. примечание 1.) | rtwsfcn.tlc (См. примечание 1.) | rsim.tlc (См. примечание 1.) | sldrt.tlc (См. примечание 1.) | slrealtime.tlc (См. примечание 1.) | Другое (См. примечание 1.) |
Статическое выделение памяти | X | X |
|
| X | X | X | |
Динамическое выделение памяти | X (См. примечания 4, 5.) | X (См. примечания 4, 5.) |
| X | X |
| X |
|
Непрерывное время | X | X |
| X | X | X | X |
|
S-функции C/C + + MEX | X | X |
| X | X | X | X |
|
S-функция (встроенная) | X | X |
| X | X | X | X | X |
Минимизация использования ОЗУ/ПЗУ |
| X |
|
|
|
| X2 | X |
Поддерживает внешний режим | X | X |
|
| X | X | X |
|
Быстрое создание прототипов | X |
|
|
|
| X | X | X |
Производственный код |
| X |
|
|
|
| X2 | X (См. примечание 3.) |
Пакетная настройка параметров и методы Monte Carlo |
|
| X |
| X |
|
|
|
Симулятор системного уровня |
|
| X |
|
|
|
|
|
Выполняется в режиме жесткого реального времени | X (См. примечание 3.) | X (См. примечание 3.) |
|
|
| X | X | X5 |
Включен исполняемый файл не в реальном времени | X | X |
|
| X |
|
|
|
Несколько экземпляров модели | X (См. примечания 4, 5.) | X (См. примечания 4, 5.) |
| X4 |
|
| X (См. примечания 4, 5.) | X (См. примечания 4, 5.) |
Поддержка решателей с переменным шагом |
|
|
| X | X |
|
|
|
Поддержка SIL/PIL | X | X |
|
|
|
|
| X |
Примечания
Системные целевые файлы:
grt.tlc - общий целевой объект в реальном времени
ert.tlc - встроенный целевой объект в реальном времени
ert_shrlib.tlc - встроенная целевая общая библиотека в реальном времени)
rtwsfcn.tlc - S-функция
rsim.tlc - быстрое моделирование
sldrt.tlc - настольный компьютер Simulink в реальном времени
slrealtime.tlc - Simulink в реальном времени
Другие - встроенные возможности в режиме реального времени в Simulink Coder поддерживают другие целевые системные файлы
Не применяется к целевым системным файлам на основе GRT. Применяется только к целевым системным файлам на основе ERT.
GRT и ERT по умолчанию rt_main файлы эмулируют выполнение жесткого реального времени. При явном подключении к часам реального времени они выполняются в жестком реальном времени.
Можно создать код для нескольких экземпляров диаграммы или подсистемы Stateflow, содержащей диаграмму, за исключением случаев, когда диаграмма содержит экспортированные графические функции или модель Stateflow содержит события, зависимые от машины.
В диалоговом окне Параметры конфигурации в поле Упаковка интерфейса кода выберите Reusable function.