Когда вы выбираете системный конечный файл (такой как grt.tlc
), выбор задает среду выполнения и функции генерации кода. Идентифицируйте системные функции конечного файла, которые совпадают с вашими целями рабочего процесса генерации кода.
Генератор кода использует системный конечный файл, чтобы произвести код, предназначенный для выполнения на определенном целевом компьютере или на определенной операционной системе. Системный конечный файл вызывает другие специфичные для среды файлы во время выполнения. Для получения дополнительной информации о конфигурировании параметров генерации типового кодекса для целевого компьютера смотрите, Конфигурируют Опции Среды выполнения.
Различные типы системных конечных файлов поддерживают выбор функций сгенерированного кода. В системном конечном файле значение переменной CodeFormat
TLC и соответствующего значения поля rtwgensettings.DerivedFrom
идентифицирует системный тип конечного файла и функции сгенерированного кода. Эти выборы применяют ваши решения управления генерации кода в нескольких точках в процессе генерации кода. Ваши выборы включают, ли и как сборка модели генерирует:
Определенные структуры данных (например, SimStruct
или rtModel
)
Код статического или динамического выделения памяти
Интерфейс Calling для сгенерированных образцовых функций
Для пользовательской системной разработки конечного файла значение CodeFormat
отличается среди целей генерации кода:
Если системный конечный файл не включает значение для переменной CodeFormat
TLC, значением по умолчанию является RealTime
для типичной цели в реальном времени (GRT). Соответствующим значением поля rtwgensettings.DerivedFrom
является grt.tlc
(значение по умолчанию).
Если вы разрабатываете пользовательский конечный файл системы, и вы имеете программное обеспечение Embedded Coder, рассматриваете установку значения переменных TLC CodeFormat
к 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
, чтобы сгенерировать код для модели. Если вы не выбираете значение явным образом, значения по умолчанию соответствуют. Для получения дополнительной информации смотрите Системную Структуру Конечного файла.
Для описания оптимизированного интерфейса вызова, сгенерированного по умолчанию для GRT и системных конечных файлов ERT, смотрите, Конфигурируют Генерацию кода для Образцовых Функций Точки входа.
Генерация кода с 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®) |
| Сконфигурируйте системный конечный файл (Embedded Coder) |
Создайте визуальный C ++® файл решения для Embedded Coder |
(Требует | Сконфигурируйте системный конечный файл (Embedded Coder) |
Embedded Coder для AUTOSAR |
| Разработайте Модель, которая Выполняет Стандарт AUTOSAR (Embedded Coder) |
Типичный В реальном времени (для PC или платформ UNIX) |
| |
Создайте файл решения для Visual C++ |
(Требует | |
Быстрая Симуляция (значение по умолчанию для PC или платформ UNIX) |
| |
Быстрая Симуляция для компилятора LCC |
| |
Быстрая Симуляция для платформ UNIX |
| |
Быстрая Симуляция для компилятора Visual C++ |
| |
S-функция для PC или платформ UNIX |
| |
S-функция для LCC |
| |
S-функция для платформ UNIX |
| |
S-функция для компилятора Visual C++ |
| |
Определение данных ASAM-ASAP2 |
| |
Simulink Desktop Real-Time |
| Установите параметры генерации кода режима external mode (Simulink Desktop Real-Time) |
Simulink Real-Time™ |
| Панель опций 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) | Не поддерживаемый | Обширные функции пользовательской настройки кода Видят Имена типов данных Управления в Сгенерированном коде (Embedded Coder) и MPT Data Object Properties (Embedded Coder). |
Система оптимизированный конечным файлом заголовочный файл типов данных | Требует полного заголовочного файла | Генерирует оптимизировал заголовочный файл |
Пользовательские типы | Пользовательское значение по умолчанию типов к базовым типам в генерации кода | Пользовательские псевдонимы типа данных поддерживаются в генерации кода |
Группировка уровня | Не поддерживаемый | Поддерживаемый |
Автоматическая генерация основного программного модуля | Не поддерживаемый. Статический основной программный модуль обеспечивается. | Автоматизированная и настраиваемая генерация основного программного модуля поддерживается (статическая основная программа, также доступная) |
Допускающий повторное использование (мультиэкземпляр) генерация кода | Опция, чтобы сгенерировать повторно используемый код с динамическим выделением памяти | Опция, чтобы сгенерировать повторно используемый код со статическим или динамическим выделением памяти |
Ограничительные опции программного обеспечения | Поддержка комплексных, и неличных чисел с плавающей точкой включена | Опции, чтобы включить или отключить поддержку комплексных, и неличных чисел с плавающей точкой |
Продолжительность жизни приложения | Значения по умолчанию к | Заданный пользователями. Определяет самый эффективный размер слова для целочисленных таймеров |
Программное обеспечение в цикле (SIL) тестирование | Цель симуляции модели - ссылки может использоваться для тестирования SIL | Дополнительный SIL, тестирующий поддержку при помощи автоматической генерации блока SIL |
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.) | slrt.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 |
Примечания
Системные конечные файлы:
grt.tlc - типичная цель в реальном времени
ert.tlc - встроенная цель в реальном времени
ert_shrlib.tlc - встроенная цель в реальном времени совместно использовала библиотеку),
rtwsfcn.tlc - S-функция
rsim.tlc - быстрая симуляция
sldrt.tlc - Simulink Desktop Real-Time
slrt.tlc - Simulink Real-Time
Другой- Встроенные возможности в реальном времени в Simulink Coder поддерживают другие системные конечные файлы
Не применяется к основанным на GRT системным конечным файлам. Применяется только к основанным на ERT системным конечным файлам.
GRT по умолчанию и файлы rt_main
ERT эмулируют выполнение жесткого реального времени. Когда явным образом соединено с часами реального времени, они выполняются в жесткое реальное время.
Можно сгенерировать код для нескольких экземпляров диаграммы Stateflow или подсистемы, содержащей график, кроме тех случаев, когда график содержит экспортируемые графические функции, или модель Stateflow содержит порожденные машиной события.
Выберите значение Reusable function
для Code interface packaging в Code Generation> панель Interface в диалоговом окне Configuration Parameters.