Процесс сборки

Обзор процесса сборки

TLC компилирует файлы, записанные на выходном языке. Выходной язык является интерпретированным языком, и компилятор работает с исходными файлами каждый раз, когда это выполняется. Можно изменить конечный файл и смотреть эффекты изменения в следующий раз, когда вы создаете модель. Вы не должны перекомпилировать двоичный файл TLC или другой большой двоичный файл, чтобы видеть изменения.

Поскольку выходной язык является интерпретированным языком, некоторые операторы не могут быть скомпилированы или выполнены (и следовательно не проверенные компилятор). Например:

%if 1
   Hello
%else
   %<Invalid_function_call()>
%endif

В этом примере не выполняется оператор Invalid_function_call. Этот пример подчеркивает, что необходимо протестировать код TLC с тестами, которые выполняют каждую строку.

Создайте и используйте файл выходного языка

Этот пример создает файл выходного языка, который генерирует определенный текст из модели. Это показывает последовательность шагов, что необходимо следовать в создании и использовании собственных файлов выходного языка.

Процесс

Чтобы начаться, создайте модель Simulink®, показанную в следующей фигуре.

  1. Сохраните новую модель в рабочей папке как basic.

  2. Отобразите диалоговое окно Configuration Parameters.

  3. Выберите панель Solver.

  4. В панели Solver:

    1. Выберите Fixed-step в поле Type.

    2. Выберите discrete (no continuous states) в поле Solver.

    3. Под Additional options задайте 0.1 в поле Fixed-step size. (В противном случае генератор кода отправляет предупреждение и предоставляет значение, когда вы генерируете код.)

  5. Нажмите Apply.

  6. Выберите панель Code Generation.

  7. Выберите Retain .rtw file, затем нажмите Apply. Этот шаг позволяет вам осмотреть содержимое файла model.rtw после того, как сборка закончится.

  8. Выберите Generate code only, затем нажмите OK.

  9. Создайте модель.

Процесс сборки генерирует код в папке basic_grt_rtw. Вы видите прогресс в Командном окне MATLAB®. Когда генерация кода завершена, после сообщения отображен:

### Successful completion of code generation for model: basic

Команда slbuild

Вызовите slbuild путем нажатия Ctrl+B в окне модели. Однако некоторые обстоятельства требуют, чтобы вы выполнили slbuild непосредственно от посдказки MATLAB.

Чтобы сгенерировать файл model.rtw от посдказки MATLAB, введите:

slbuild('model')

Можно задать другие опции к slbuild, которые создают или восстанавливают цели симуляции модели - ссылки или независимый исполняемый файл. Для получения дополнительной информации введите:

help slbuild

в посдказке MATLAB или смотрите slbuild в документации Simulink.

Просмотр файла basic.rtw

Файл model.rtw содержит иерархию маркированных записей и полей. Каждая запись разграничена скобками и содержит зависимые записи и/или поля. Метки формулируют цель каждой записи и поля. Записи и поля в файле model.rtw, созданном для модели, описывают различные детали модели и настроек Configuration Parameter, которые задают его контекст.

Откройте файл ./basic_grt_rtw/basic.rtw в MATLAB или текстовом редакторе.

Создайте конечный файл

Примечание

Следующее осуществление обеспечивается, чтобы дать концептуальный обзор того, как файл .rtw используется в процессе сборки. Генератор кода не поддерживает вручную вызов TLC с файлом .rtw, созданным из более ранней сборки. Кроме того, содержимое файла .rtw не документировано и подлежит изменению. Файл 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 в панели Code Generation диалогового окна Configuration Parameters.

В этом примере вы генерируете файл .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. Опция -r говорит TLC, что это должно использовать файл basic.rtw в качестве файла .rtw. Обратите внимание на то, что пробел должен разделить -r и входное имя файла. Опция -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 изменяется.

Похожие темы