TLC компилирует файлы, написанные на целевом языке. Целевой язык является интерпретированным языком, и компилятор работает с исходными файлами каждый раз, когда он выполняется. Можно изменить целевой файл и наблюдать эффекты изменения при следующем построении модели. Вам не нужно перекомпилировать TLC-двоичный или другой большой двоичный файл, чтобы увидеть изменения.
Поскольку целевой язык является интерпретированным языком, некоторые операторы могут не компилироваться и не выполняться (и, следовательно, не проверяться компилятором). Для примера:
%if 1 Hello %else %<Invalid_function_call()> %endif
В этом примере Invalid_function_call
оператор не выполняется. В этом примере подчеркивается, что вы должны протестировать код TLC с тестами, которые выполняют каждую строку.
Этот пример создает файл целевого языка, который генерирует определенный текст из модели. Он показывает последовательность шагов, которым вы должны следовать при создании и использовании собственных файлов целевого языка.
Чтобы начать, создайте Simulink® модель, показанная на следующем рисунке.
Сохраните новую модель в рабочей папке как basic
.
Откройте диалоговое окно Параметров конфигурации.
Выберите панель Solver.
На панели Solver:
Выберите Fixed-step
в поле Type.
Выберите discrete (no continuous states)
в поле Solver.
В разделе Additional options задайте 0.1
в поле Fixed-step size. (В противном случае генератор кода выводит предупреждение и выдает значение при генерации кода.)
Нажмите Apply.
Выберите панель Code Generation.
Выберите Retain .rtw file, затем нажмите Apply. Этот шаг позволяет вам просмотреть содержимое
файл после концов сборки.model
.rtw
Выберите Generate code only, затем нажмите OK.
Создайте модель.
Процесс сборки генерирует код в basic_grt_rtw
папка. Прогресс можно увидеть в MATLAB® Командное окно. Когда генерация кода завершена, выводится следующее сообщение:
### Successful completion of code generation for model: basic
slbuild
КомандаПризвать slbuild
путем нажатия Ctrl+B в окне модели. Однако некоторые обстоятельства требуют от вас выполнения slbuild
непосредственно из подсказки MATLAB.
Чтобы сгенерировать
файл из подсказки MATLAB, введите:model
.rtw
slbuild('model')
Можно задать другие опции, slbuild
которые строят или перестраивают модель-ссылку симуляции целевые объекты или независимый исполняемый файл. Для получения дополнительной информации введите:
help slbuild
в подсказке MATLAB или см. slbuild
в документации Simulink.
basic.rtw
Файл A
файл содержит иерархию маркированных записей и полей. Каждая запись разделена скобками и содержит подчиненные записи и/или поля. В метках указывается назначение каждой записи и поля. Записи и поля в model
.rtw
файл, созданный для модели, описывает различные детали модели и Параметра конфигурации настройки, которые определяют ее контекст.model
.rtw
Откройте файл ./basic_grt_rtw/basic.rtw
, в MATLAB или текстовом редакторе.
Примечание
Следующее упражнение предназначено для концептуального обзора того, как .rtw
Файл используется в процессе сборки. Генератор кода не поддерживает ручной вызов TLC со .rtw
файл, созданный из более ранней сборки. Кроме того, содержимое .rtw
файл не имеет документов и может быть изменен. The basic.tlc
файл показывает, как информация предоставляется в .rtw
файл, который можно получить с помощью файлов TLC и выполнить как часть процесса сборки.
Далее создайте basic.tlc
файл, для действия в качестве целевого файла для этой модели. Вместо генерации кода просто отобразите некоторую информацию о модели с помощью этого файла. Концепция такая же, как используется в генерации кода.
Создайте файл с именем basic.tlc
в папке, содержащей basic
. Этот файл должен содержать следующие линии:
%with CompiledModel My model is called %<Name>. It was generated on %<GeneratedOn>. It has %<NumModelOutputs> output(s) and %<NumContStates> continuous state(s). %endwith
Примечание
В процессе сборки .tlc
файл, указанный в командной строке при вызове TLC (для примера, grt.tlc
) называется системным целевым файлом (STF). Его можно выбрать с помощью опции System target file browser на панели Code Generation диалогового окна Параметров конфигурации.
В этом примере вы генерируете .rtw
файл как часть процесса сборки, а затем вручную запустите TLC с помощью файла basic.tlc
в качестве примера STF. basic.tlc
иллюстрирует (в ограниченном объеме), как .rtw
информация о файле используется для генерации примера выхода. Для этого введите в подсказку MATLAB:
slbuild('basic') tlc -r basic_grt_rtw/basic.rtw basic.tlc -v
Первая линия генерирует .rtw
файл в папке сборки 'basic_grt_rtw'
. Этот шаг является ненужным, поскольку файл уже был сгенерирован на предыдущем шаге. Однако это полезно, если модель изменена и операция должна быть повторена.
Вторая линия запускает TLC на файле basic.tlc
. The -r
опция сообщает TLC, что он должен использовать файл basic.rtw
как .rtw
файл. Обратите внимание, что пространство должно разделять -r
и имя файла входа. The -v
опция указывает, что TLC является подробным в отчетности о своей деятельности.
Выходные выходы этой пары команд (дата будет отличаться):
My model is called basic. It was generated on Wed Jun 22 20:51:11 2005. It has 1 output(s) and 0 continuous state(s).
Можно также попробовать изменить модель (для образца, используя rand(2,2)
как значение для постоянного блока), а затем повторение процесса, чтобы увидеть, как изменяется выход TLC.