Переместите код к другой среде разработки

Если вы требуете перемещения файлов статического и сгенерированного кода для модели к другой среде разработки, используйте утилиту упаковывать-и-идти. Это условие происходит, когда ваша система или интегрированная среда разработки (IDE) не включают продукты Simulink® и MATLAB®.

Перемещение кода

pack-n-go утилита использует инструменты для настройки процесса сборки после генерации кода и packNGo функционируйте, чтобы найти и группировать файлы для создания исполняемого изображения. Файлы группированы в сжатом файле, что можно переместить и распаковать использование стандартного zip утилита.

Код пакета Используя пользовательский интерфейс

Группировать и перемещать код для вашей модели с помощью пользовательского интерфейса:

  1. В диалоговом окне Configuration Parameters выберите Package code and artifacts (Simulink Coder). Эта опция конфигурирует процесс сборки, чтобы запустить packNGo функция после генерации кода, чтобы группировать сгенерированный код и артефакты для перемещения.

  2. В поле Zip file name (Simulink Coder) введите имя zip файл, в котором можно группировать сгенерированный код и артефакты для перемещения. Можно задать имя файла с или без .zip расширение. Если вы не задаете расширение или расширение кроме .zip, zip утилита добавляет the.zip расширение. Если вы не задаете значение, процесс сборки использует имя modelzip, где model имя топ-модели, для которой генерируется код.

  3. Примените изменения и сгенерируйте код для своей модели. Чтобы проверить, что это готово к перемещению, смотрите получившийся zip файл. В зависимости от zip инструмент, который вы используете, вы могли смочь открыть и смотреть файл, не распаковывая его.

  4. Переместите zip файл к целевой среде разработки и распаковывает файл.

Код пакета Используя интерфейс командной строки

Группировать и перемещать код для вашей модели с помощью интерфейса командной строки:

Выберите структуру для zip-файла

Прежде чем вы сгенерируете и группируете файлы для сборки модели, решите, хотите ли вы, чтобы файлы были группированы в плоской или иерархической структуре папок. По умолчанию, packNGo функциональные пакеты файлы в одной, плоской структуре папок.

Если...Затем используйте...
Вы перемещаете файлы к IDE, который не использует сгенерированный make-файл, или код не зависит от относительного местоположения необходимых статических файловОдна, плоская структура папок
Целевая среда разработки должна обеспечить структуру папок исходной среды, потому что это использует сгенерированный make-файл, или код зависит от относительного местоположения файловИерархическая структура

Если вы используете иерархическую структуру, packNGo функция создает два уровня zip файлы, первичный zip файл, который в свою очередь содержит следующий вторичный zip файлы:

  • mlrFiles.zip — файлы в вашем matlabroot дерево папки

  • sDirFiles.zip — файлы в и под вашей папкой сборки, где вы инициировали генерацию кода для модели

  • otherFiles.zip — необходимые файлы не в matlabroot или start деревья папки

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

Выберите имя для zip-файла

По умолчанию, packNGo имена функций первичный zip файл model. У вас есть опция определения другого имени. Если вы задаете имя файла и не используете расширение типа файла, функция добавляет . к имени, которое вы задаете.

Типовой кодекс пакета в zip-файле

Файлы типового кодекса пакета при помощи PostCodeGenCommand параметр конфигурации, packNGo функция и информационный объект сборки для модели. Можно настроить упаковочную операцию, чтобы использовать:

  • Система сгенерированный информационный объект сборки.

    В этом случае, прежде, чем сгенерировать типовой кодекс, используйте set_param установить параметр конфигурации PostCodeGenCommand к явному вызову packNGo функция. Например:

    set_param(bdroot, 'PostCodeGenCommand', 'packNGo(buildInfo);');

    После генерации и записи типового кодекса к диску и прежде, чем сгенерировать make-файл, эта команда дает процессу сборки команду оценивать вызов packNGo. Эта команда использует систему сгенерированный информационный объект сборки в в настоящее время выбранной модели.

  • Информационный объект сборки, который вы создаете программно.

    В этом случае вы могли использовать другие функции информации о сборке, чтобы включать пути и файлы выборочно в информационном объекте сборки, который вы затем задаете с packNGo функция. Например:

    .
    .
    .
    myModelBuildInfo = RTW.BuildInfo;
    addSourceFiles(myModelBuildInfo, {'test1.c' 'test2.c' 'driver.c'});
    .
    .
    .
    packNGo(myModelBuildInfo);

Следующие примеры показывают, как можно изменить поведение по умолчанию packNGo.

К... Задать...
Измените структуру упаковки файла к иерархическомуpackNGo(buildInfo, 'packType' 'hierarchical');
Переименуйте первичный zip файлpackNGo(buildInfo, 'fileName' 'zippedsrcs');
Измените структуру упаковки файла к иерархическому и переименуйте первичный zip файлpackNGo (buildInfo, 'packType' 'иерархический'...
'имя файла' 'zippedsrcs');
Включайте заголовочные файлы, найденные на включать пути в zip файлpackNGo(buildInfo, 'minimalHeaders' false);
Сгенерируйте предупреждения для ошибок анализа и недостающих файловpackNGo (buildInfo, 'ignoreParseError' верный...
верный 'ignoreFileMissing');

Примечание

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

Смотрите сгенерированный zip-файл

Чтобы проверить, что это готово к перемещению, смотрите сгенерированный zip файл. В зависимости от zip инструмент, который вы используете, вы могли смочь открыть и смотреть файл, не распаковывая его. При распаковке файла и вы группировали файлы типового кодекса как иерархическую структуру, распаковка требует, чтобы вы распаковали первичный и вторичный zip файлы. Когда вы распаковываете вторичный zip файлы, относительные пути файлов сохраняются.

Переместите и распакуйте zip-файл

Переместите сгенерированный zip файл к целевой среде разработки и распаковывает файл.

Код, группирующий пример

В этом примере показано, как группировать файлы кода, сгенерированные для модели rtwdemo_rtwintro в качестве примера использование интерфейса командной строки:

  1. Установите свою рабочую папку на перезаписываемую папку.

  2. Откройте модель rtwdemo_rtwintro и сохраните копию в свою рабочую папку.

  3. Введите следующую команду MATLAB:

    set_param('rtwdemo_rtwintro', 'PostCodeGenCommand',...
    'packNGo(buildInfo, ''packType'' ''hierarchical'')');

    Необходимо удвоить одинарные кавычки из-за вложения символьных массивов 'packType' и 'hierarchical' в символьном массиве, который задает вызов packNGo.

  4. Сгенерируйте код для модели.

  5. Смотрите сгенерированный zip файл, rtwdemo_rtwintro.zip. zip файл содержит два вторичных zip файлы, mlrFiles.zip и sDirFiles.zip.

  6. Смотрите zip файлы mlrFiles.zip и sDirFiles.zip.

  7. Переместите zip файл к целевой среде и распаковывает его.

Ограничения

Функция packNGo

Для получения информации об ограничениях, которые применяются к этой функции, смотрите packNGo.

Исполняемый файл с расширением не по умолчанию

Если процесс сборки использует подход make-файла шаблона, то packNGo использует расширение исполняемого файла, заданное инструментом компоновщика, чтобы определить бинарные артефакты, которые требуют упаковки.

Если вы генерируете исполняемый файл с расширением, которое не является значением по умолчанию, проверяйте, что расширение сохранено в наборе инструментальных средств, сопоставленном с make-файлом шаблона. Для получения дополнительной информации смотрите Партнера Make-файл Шаблона с Набором инструментальных средств (Simulink Coder).

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте