Когда вы выбираете системный целевой файл (например grt.tlc
), выбор определяет окружение выполнения и функции генерации кода. Идентифицируйте функции системного целевого файла, которые соответствуют целям рабочего процесса генерации кода.
Генератор кода использует системный целевой файл, чтобы получить код, предназначенный для выполнения на определенном целевом компьютере или на определенной операционной системе. Системный целевой файл вызывает другие файлы среды выполнения. Для получения дополнительной информации о настройке параметров генерации кода модели для целевого компьютера, смотрите Configure Run-Time Опции.
Различные типы системных целевых файлов поддерживают выбор сгенерированного кода функций. В системном целевом файле значение 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
структура данных, см. Структура данных модели реального времени.
Можно выбрать из области значений системных целевых файлов с помощью System Target File Browser. Этот выбор позволяет экспериментировать с опциями строения и сохранять модель с различными строениями.
Вы не можете создавать или генерировать код для целевых файлов, отличных от GRT, если у вас нет необходимого программного обеспечения в системе. Для примера вам требуется Embedded Coder® для целевых файлов системы ERT, Simulink® Desktop Real-Time™ для целевых файлов системы SLDRT и так далее.
Выбор системного целевого файла для модели выбирает либо подход набора инструментальных средств, либо подход make-файла шаблона для управления процессом сборки. Дополнительные сведения об этих подходах см. в разделах Выбор подхода к сборке и Настройка процесса сборки.
Системные целевые файлы, доступные из системного целевого файлового браузера
Поддерживаемый системный целевой файл | Имена файлов | Ссылка |
---|---|---|
Embedded Coder (для ПК или UNIX® платформы) |
| Сконфигурируйте системный целевой файл (Embedded Coder) |
Создайте Visual C++® Файл решения для Embedded Coder |
(Требует | Сконфигурируйте системный целевой файл (Embedded Coder) |
Embedded Coder для AUTOSAR |
| Разрабатывайте модель, которая соответствует стандарту AUTOSAR (Embedded Coder) |
Generic Real-Time (для платформ 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 Desktop Real-Time |
| Установите параметры генерации кода режима external mode (Simulink Desktop Real-Time) |
Функции Simulink Real-Time™ |
| Панель Options Simulink Real-Time (Simulink Real-Time) |
Примечание
Чтобы создать и создать файл Visual C++ Solution (.sln) с строением Debug, выберите RTW.MSVCBuild в поле Template make-файла.
Генератор кода создает два стиля кода. Один стиль кода подходит для быстрого прототипирования (и симуляции с помощью генерации кода). Другой стиль подходит для встраиваемых приложений. Эта таблица сопоставляет системные целевые файлы с соответствующими стилями кода.
Стили кода, перечисленные системным целевым файлом
Системный целевой файл | Стиль кода | Цель |
---|---|---|
Встроенный кодер Embedded Coder в реальном времени (ERT) | Вложенный | Отправная точка для разработки встраиваемых приложений сгенерированного кода C/C + +. |
Simulink Coder™ типовой режим реального времени (GRT) | Быстрое прототипирование | Отправной точкой для создания целевого оборудования быстрого прототипирования, которое не использует примитивы задач операционной системы в реальном времени, и для проверки сгенерированного кода C/C + + на рабочем компьютере. |
Быстрая симуляция (RSim) | Быстрое прототипирование | Обеспечивает симуляцию в реальном времени на вашем рабочем компьютере и высокоскоростной или пакетный инструмент симуляции. |
S-функция | Быстрое прототипирование | Создает S-функцию C MEX для симуляции в другой модели Simulink. |
Simulink Desktop Real-Time | Быстрое прототипирование | Запускает модель в реальном времени на уровне прерывания, в то время как ваш рабочий компьютер работает под управлением Microsoft® Windows® в фоновом режиме. |
Simulink Real-Time | Быстрое прототипирование | Запускает модель в реальном времени на рабочий компьютер, на которой работает ядро Simulink Real-Time. |
Сторонние поставщики поставляют дополнительные системные целевые файлы для поддержки генерации кода для своих продуктов. Для получения дополнительной информации о сторонних продуктах смотрите веб-сайт поставщика или веб-страницу программы MathWorks Connections: https://www.mathworks.com/products/connections
.
Процесс генерации кода для целевых файлов системы в реальном времени (таких как GRT) обеспечивает много оптимизации встроенного кода. Выбор целевого файла системы ERT обеспечивает более обширные функции, чем GRT. Выбор системного целевого файла определяет доступные функции для продукта генерации кода. Когда вы выбираете цель генерации кода, которая соответствует вашему процессу разработки, используйте эту таблицу, чтобы сравнить функции генерации кода, доступные с Simulink Coder и функции, доступные с Embedded Coder.
Сравнение функций генерации кода для Simulink Coder и Embedded Coder
Функция | Simulink Coder | Embedded Coder |
---|---|---|
|
|
|
Пользовательские классы памяти (CSC) | Генерация кода игнорирует CSC. Объектам по умолчанию присваивается CSC | Поддержка генерации кода с CSC |
HTML генерации кода отчет | Основной отчет генерации кода HTML | Расширенный отчет с дополнительной подробностью и гиперссылками на модель |
Форматирование символов | Символы (для сигналов, параметров и так далее) генерируются в соответствии с жестко закодированным значением по умолчанию | Детальное управление сгенерированными символами |
Определенная пользователем максимальная длина идентификатора для сгенерированных символов | Поддержанный | Поддержанный |
Генерация функции завершения | Произведенный | Опция подавления функции завершения |
Функция комбинированного вывода/обновления | Сгенерированы отдельные функции вывода/обновления | Опция для генерации комбинированной функции вывода/обновления |
Оптимизированная инициализация данных | Недоступно | Опции для подавления генерации ненужного кода инициализации для памяти с нулевым значением, портов ввода-вывода и так далее |
Генерация комментариев | Основные опции для включения или подавления генерации комментариев | Опции для включения описаний блоков Simulink, Stateflow® описания объектов и описания объектов данных Simulink в комментариях |
Упаковка модуля Функций (MPF) | Не поддерживается | Обширные функции индивидуальной настройки кода См. Имена типов данных управления в Сгенерированном коде (Embedded Coder) и Свойствах объекта данных MPT (Embedded Coder). |
Системный файл заголовка типов данных, оптимизированных для целевого файла | Требует полного | Генерирует оптимизированные |
Определяемые пользователем типы | Пользовательские типы по умолчанию для базовых типов при генерации кода | Пользовательские псевдонимы типов данных поддерживаются в генерации кода |
Группировка скоростей | Не поддерживается | Поддержанный |
Автоматическая генерация основного программного модуля | Не поддерживается. Предусмотрен статический основной программный модуль. | Поддерживается автоматизированная и настраиваемая генерация основного программного модуля (также доступна статическая основная программа) |
Многоразовый мультиобразец кода | Опция для генерации повторно используемого кода с динамическим выделением памяти | Опция для генерации повторно используемого кода со статическим или динамическим выделением памяти |
Программные ограничения опций | Поддержка чисел с плавающей точкой, комплексных и нефинитных чисел включена | Опции для включения или отключения поддержки чисел с плавающей точкой, комплексных и нефинитных чисел |
Срок службы приложения | По умолчанию это значение | Заданный пользователем. Определяет наиболее эффективный размер слова для целочисленных таймеров |
ANSI®Генерация кода -C/C + + | Поддержанный | Поддержанный |
ISO®Генерация кода -C/C + + | Поддержанный | Поддержанный |
GNU®Генерация кода -C/C + + | Поддержанный | Поддержанный |
Сгенерируйте скалярные inlined параметры как | Не поддерживается | Поддержанный |
Модификатор имени переменной MAT-файла | Поддержанный | Поддержанный |
Обмен данными: C API, ASAP2, режим external mode | Поддержанный | Поддержанный |
Генератор кода поддерживает выбор сгенерированного кода функций для различных типов системных целевых файлов. В каждом системном целевом файле значение CodeFormat
Переменная определяет набор функций.
В этой таблице описывается поддержка различных системных целевых файлов приложениями.
Приложение | Системный целевой файл (STF) |
---|---|
Ускорение с фиксированным или переменным шагом | RSIM, S-функция, модель-ссылка |
Шаговое развертывание приложений | GRT, ERT, Simulink Real-Time, Simulink Desktop Real-Time,... |
В этой таблице представлены различные опции, доступные для каждого выбора System target file, за исключением отмеченных исключений.
Функции, поддерживаемые в коде, сгенерированном для системных целевых файлов (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 |
|
C/C + + MEX S-функции | X | X |
| X | X | X | X |
|
S-функция (встроенная) | X | X |
| X | X | X | X | X |
Минимизируйте использование ОЗУ/ПЗУ |
| X |
|
|
|
| X2 | X |
Поддерживает режим external mode | X | X |
|
| X | X | X |
|
Быстрое прототипирование | X |
|
|
|
| X | X | X |
Производственный код |
| X |
|
|
|
| X2 | X (См. примечание 3.) |
Настройка пакетных параметров и методы Монте-Карло |
|
| 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 Desktop Real-Time
slrealtime.tlc - Simulink Real-Time
Other - Встроенные возможности в режиме реального времени в Simulink Coder поддерживают другие системные целевые файлы
Не применяется к системным целевым файлам на основе GRT. Применяется только к системным целевым файлам на основе ERT.
GRT и ERT по умолчанию rt_main
файлы эмулируют выполнение жесткого реального времени. При явном соединении с часами реального времени они выполняются в жестком режиме реального времени.
Можно сгенерировать код для нескольких образцов диаграммы или подсистемы Stateflow, содержащей график, за исключением тех случаев, когда график содержит экспортированные графические функции или модель Stateflow содержит события с пометкой машины.
В диалоговом окне Параметров конфигурации для поля Code interface packaging выберите Reusable function
.