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

Можно сгенерировать код и создать исполняемый файл для подсистемы в модели. Генерация кода и процесс сборки используют генерацию кода и параметры сборки корневой модели.

  1. В диалоговом окне Configuration Parameters, настроенном генерация кода и параметры сборки, похожие на создание генерации кода для модели.

  2. Щелкните правой кнопкой по блоку Subsystem. Из контекстного меню выберите C/C++ Code > Build This Subsystem из контекстного меню.

    В качестве альтернативы в текущей модели, кликните по подсистеме и затем от вкладки C Code, нажмите Build.

    Примечание

    Когда вы выбираете Build This Subsystem, если модель действует в режиме external mode, процесс сборки автоматически выключает режим external mode на время сборки. Генератор кода восстанавливает режим external mode после завершения процесса сборки.

  3. Окно Build code for Subsystem отображает список параметров подсистемы. Верхняя панель отображает имя, класс и класс памяти каждой переменной (или объект данных), на который ссылаются как параметры блоков в подсистеме. Когда вы выбираете параметр в верхней панели, более низкая панель показывает блоки что ссылка параметр и родительская система каждого блока.

    Столбец Storage Class содержит меню для каждой строки. Пункты меню устанавливают класс памяти или встраивают параметр. Чтобы объявить, что параметр является настраиваемым, установите Storage Class на значение кроме Inlined.

    Для получения дополнительной информации о настраиваемых и встроенных параметрах и классах памяти, смотрите, Создают Настраиваемый Калибровочный Параметр в Сгенерированном коде.

  4. После выбора настраиваемых параметров нажмите Build, чтобы инициировать генерацию кода и процесс сборки.

  5. Процесс сборки отображает сообщения о состоянии в Командном окне MATLAB®. Когда сборка завершена, сгенерированный исполняемый файл находится в вашей рабочей папке. Именем сгенерированного исполняемого файла является subsystem.exe (на платформах PC) или subsystem (на платформах Open Group UNIX®). subsystem имя исходного блока подсистемы.

    Сгенерированный код находится в подпапке сборки, названной subsystem_target_rtw. subsystem имя исходного блока подсистемы и target имя целевой настройки.

Когда вы генерируете код для подсистемы, можно сгенерировать S-функцию путем щелчка правой кнопкой по блоку Subsystem и выбора C/C++ Code > Build This Subsystem из контекстного меню. Для получения дополнительной информации о S-функциях смотрите, Генерируют S-функцию от Подсистемы.

Ограничения сборки подсистемы

Нижеследующие ограничения применяются к созданию подсистем:

  • Сборка подсистемы не поддерживает подсистему, которая имеет триггерный вход вызова функции или вызов функции выход.

  • Когда вы щелкаете правой кнопкой по блоку Subsystem и выбираете C/C++ Code > Build This Subsystem из контекстного меню, чтобы создать подсистему, которая включает блок Outport, для которого параметр Data type задает объект шины, вы должны ошибки адресации, которые следуют из установки меток сигнала. Чтобы сконфигурировать программное обеспечение, чтобы отобразить эти ошибки, в диалоговом окне Configuration Parameters для родительской модели, на Diagnostics> панель Connectivity, устанавливают параметр Signal label mismatch на error.

  • Когда подсистема находится в инициированном или подсистеме вызова функций, процесс сборки щелчка правой кнопкой может перестать работать, если код подсистемы не является независимым шагом расчета. Чтобы узнать, является ли подсистема независимым шагом расчета:

    1. Скопируйте все блоки в подсистеме к пустой модели.

    2. В диалоговом окне Configuration Parameters, на панели Solver, наборе:

      1. Type к Fixed-step.

      2. Periodic sample time constraint к Ensure sample time independent.

      3. Нажмите Apply.

    3. Обновите модель. Если модель является зависимым шага расчета, Simulink® генерирует ошибку в процессе обновления схемы.

  • Когда вы используете процесс сборки щелчка правой кнопкой в подсистеме, генератор кода пытается использовать имя подсистемы в файлах сгенерированного кода. В некоторых случаях может быть конфликт с именем, которое вы задаете, когда вы устанавливаете, например, File name options к Use function name или Function name options к Use subsystem name. Вы видите ошибку:

    The subsystem 'model/subsys' 
    is trying to generate code to an reserved file (subsys) for 
    the model 'subsys'...

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

  • В предупреждении сборки подсистемы, гиперссылка блока path подсистемы, которая является созданными ссылками временный путь к блоку модели вместо фактического пути к блоку модели. В Диагностическом Средстве просмотра, кликая по гиперссылке подсистемы не берет вас с блоком. В Командном окне вы видите сообщение:

    ...
    No system or file called 'subsystemName' found.
    ...