Когда вы выбираете системный конечный файл (такой как grt.tlc
), выбор задает среду выполнения и функции генерации кода. Идентифицируйте системные функции конечного файла, которые совпадают с вашими целями рабочего процесса генерации кода.
Генератор кода использует системный конечный файл, чтобы произвести код, предназначенный для выполнения на определенном целевом компьютере или на определенной операционной системе. Системный конечный файл вызывает другие специфичные для среды файлы во время выполнения. Для получения дополнительной информации о конфигурировании параметров генерации типового кодекса для целевого компьютера смотрите, Конфигурируют Опции Среды выполнения.
Различные типы системных конечных файлов поддерживают выбор функций сгенерированного кода. В системном конечном файле, значении CodeFormat
Переменная TLC и соответствующий rtwgensettings.DerivedFrom
значение поля идентифицирует системный тип конечного файла и функции сгенерированного кода. Эти выборы применяют ваши решения управления генерации кода в нескольких точках в процессе генерации кода. Ваши выборы включают, ли и как сборка модели генерирует:
Определенные структуры данных (например, SimStruct
или rtModel
)
Код статического или динамического выделения памяти
Интерфейс Calling для сгенерированных функций модели
Для пользовательской системной разработки конечного файла, 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
, включая:
Целочисленные абсолютные и прошедшие услуги по синхронизации
Независимые таймеры для асинхронных задач
Генерация улучшенного кода API C для сигнала, состояния и контроля параметра
Сокращение структуры данных, чтобы минимизировать ее размер (только ERT-выведенные системные конечные файлы)
Для описания rtModel
структура данных, смотрите Структуру данных Модели реального времени.
Можно выбрать из области значений системных конечных файлов при помощи Системного Браузера Конечного файла. Этот выбор позволяет вам экспериментировать с параметрами конфигурации и сохранить свою модель с различными настройками.
Вы не можете создать или сгенерировать код для системных конечных файлов не-GRT, если у вас нет необходимого программного обеспечения в вашей системе. Например, вы требуете Embedded Coder® для системных конечных файлов ERT, Simulink® Desktop Real-Time™ для системных конечных файлов SLDRT, и так далее.
Выбор системного конечного файла для вашей модели выбирает или подход набора инструментальных средств или подход make-файла шаблона для управления процессом сборки. Для получения дополнительной информации об этих подходах, смотрите, Выбирают Build Approach и Configure Build Process.
Системные конечные файлы, доступные от системного браузера конечного файла
Поддерживаемый системный конечный файл | Имена файлов | Ссылка |
---|---|---|
Embedded Coder (для PC или платформ UNIX®) |
| |
Создайте визуальный C ++® файл решения для Embedded Coder |
(Требует | |
Embedded Coder для 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 Desktop Real-Time |
| Установите параметры генерации кода режима external mode (Simulink Desktop Real-Time) |
Simulink Real-Time™ |
| Панель Options Simulink Real-Time (Simulink Real-Time) |
Примечание
Чтобы создать и создать Решение для Visual C++ (.sln) файл с Настройкой отладочного процесса, выберите RTW.MSVCBuild в поле make-файла Шаблона.
Генератор кода производит два стиля кода. Один стиль кода подходит для быстрого прототипирования (и симуляция при помощи генерации кода). Другой стиль подходит для встраиваемых приложений. Эта таблица сопоставляет системные конечные файлы с соответствующими стилями кода.
Стили кода, перечисленные системным конечным файлом
Системный конечный файл | Стиль кода | Цель |
---|---|---|
Встроенный в реальном времени (ERT) Embedded Coder | Встроенный | Начальная точка для разработки встраиваемого приложения сгенерированного кода C/C++. |
Типовой в реальном времени (GRT) Simulink Coder™ | Быстрое прототипирование | Начальная точка для создания целевого компьютера быстрого прототипирования, который не использует примитивы управления задачами операционной системы реального времени и для проверки сгенерированного компьютера кода на вашем десктопе C/C++. |
Быстрая симуляция (RSim) | Быстрое прототипирование | Обеспечивает симуляцию нев реальном времени на вашем рабочем компьютере и высокоскоростном или пакетном инструменте симуляции. |
S-функция | Быстрое прототипирование | Создает S-функцию MEX C для симуляции в другой модели Simulink. |
Simulink Desktop Real-Time | Быстрое прототипирование | Запускает модель в режиме реального времени на уровне прерывания, в то время как ваш рабочий компьютер запускает Microsoft® Windows® в фоновом режиме. |
Simulink Real-Time | Быстрое прототипирование | Запускает модель в режиме реального времени на рабочем компьютере, запускающем Ядро Simulink Real-Time. |
Сторонние поставщики предоставляют дополнительные системные конечные файлы, чтобы поддержать генерацию кода для их продуктов. Для получения дополнительной информации о сторонних продуктах, смотрите веб-сайт поставщика или веб-страницу программы MathWorks Connections: https://www.mathworks.com/products/connections
.
Процесс генерации кода для конечных файлов системы реального времени (таких как GRT) обеспечивает много встроенной оптимизации кода. Выбор ERT-based system target file offers более обширные функции, чем GRT. Системный выбор конечного файла определяет доступные функции продукта генерации кода. Когда вы выбираете цель генерации кода, которая совпадает с вашим процессом разработки, используйте эту таблицу, чтобы сравнить функции генерации кода, доступные с Simulink Coder и функциями, доступными с Embedded Coder.
Сравните функции генерации кода Simulink Coder по сравнению с Embedded Coder
Функция | Simulink Coder | Embedded Coder |
---|---|---|
|
|
|
Пользовательские классы памяти (CSCs) | Генерация кода игнорирует CSCs. Объекты присвоены значение по умолчанию CSC | Генерация кода с CSCs поддерживается |
Отчет генерации кода HTML | Основной отчет генерации кода HTML | Расширенный отчет с дополнительной деталью и гиперссылками на модель |
Форматирование символа | Символы (для сигналов, параметров, и так далее) сгенерированы в соответствии с трудно закодированным значением по умолчанию | Подробное управление сгенерированными символами |
Пользовательская максимальная длина идентификатора для сгенерированных символов | Поддерживаемый | Поддерживаемый |
Генерация оконечной функции | Сгенерированный | Опция, чтобы подавить оконечную функцию |
Объединенная функция выхода/обновления | Сгенерированы отдельные функции выхода/обновления | Опция, чтобы сгенерировать объединенную функцию выхода/обновления |
Оптимизированная инициализация данных | Не доступный | Опции, чтобы подавить генерацию ненужного кода инициализации для памяти с нулевым знаком, портов I/O, и так далее |
Генерация комментариев | Основные опции, чтобы включать или подавить генерацию комментария | Опции, чтобы включать описания блока Simulink, описания объекта Stateflow® и описания Объекта данных Simulink в комментариях |
Функции упаковки модуля (MPF) | Не поддерживаемый | Обширные функции пользовательской настройки кода Видят Имена типов данных Управления в Generated Code and MPT Data Object Properties. |
Система оптимизированный конечным файлом заголовочный файл типов данных | Требует полного | Генерирует оптимизировал |
Пользовательские типы | Пользовательское значение по умолчанию типов к базовым типам в генерации кода | Пользовательские псевдонимы типа данных поддерживаются в генерации кода |
Группировка уровня | Не поддерживаемый | Поддерживаемый |
Автоматическая генерация основного программного модуля | Не поддерживаемый. Статический основной программный модуль обеспечивается. | Автоматизированная и настраиваемая генерация основного программного модуля поддерживается (статическая основная программа, также доступная) |
Допускающий повторное использование (мультиэкземпляр) генерация кода | Опция, чтобы сгенерировать повторно используемый код с динамическим выделением памяти | Опция, чтобы сгенерировать повторно используемый код со статическим или динамическим выделением памяти |
Ограничительные опции программного обеспечения | Поддержка комплексных, и неличных чисел с плавающей точкой включена | Опции, чтобы включить или отключить поддержку комплексных, и неличных чисел с плавающей точкой |
Продолжительность жизни приложения | Значения по умолчанию к | Заданный пользователями. Определяет самый эффективный размер слова для целочисленных таймеров |
ANSI®-C/C ++ генерация кода | Поддерживаемый | Поддерживаемый |
ISO®-C/C ++ генерация кода | Поддерживаемый | Поддерживаемый |
GNU®-C/C ++ генерация кода | Поддерживаемый | Поддерживаемый |
Сгенерируйте встроенные параметры скаляра как | Не поддерживаемый | Поддерживаемый |
Модификатор имени переменной MAT-файла | Поддерживаемый | Поддерживаемый |
Обмен данными: C API, ASAP2, режим external mode | Поддерживаемый | Поддерживаемый |
Генератор кода поддерживает выбор функций сгенерированного кода различных типов системных конечных файлов. В каждом системном конечном файле, значении CodeFormat
Переменная TLC идентифицирует набор функций.
Эта таблица суммирует, как различные системные конечные файлы поддерживают приложения.
Приложение | Системный конечный файл (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 |
|
S-функции MEX C/C++ | X | X |
| X | X | X | X |
|
S-функция (встраивается) | X | X |
| X | X | X | X | X |
Минимизируйте использование RAM/ROM |
| 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
Другой- Встроенные возможности в реальном времени в Simulink Coder поддерживают другие системные конечные файлы
Не применяется к основанным на GRT системным конечным файлам. Применяется только к основанным на ERT системным конечным файлам.
GRT по умолчанию и rt_main
ERT файлы эмулируют выполнение жесткого реального времени. Когда явным образом соединено с часами реального времени, они выполняются в жесткое реальное время.
Можно сгенерировать код для нескольких экземпляров диаграммы Stateflow или подсистемы, содержащей график, кроме тех случаев, когда график содержит экспортируемые графические функции, или модель Stateflow содержит порожденные машиной события.
В диалоговом окне Configuration Parameters, для поля Code interface packaging, выбирают Reusable function
.