Запустите анализ Polyspace сгенерированного кода при помощи упакованных файлов опций

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

Сохранение контекстной информации модели Simulink при выполнении анализа Polyspace может быть полезным в различных ситуациях. Например:

  • Распределенный рабочий процесс: пользователь Simulink генерирует код из модели и отправляет код в другую среду разработки. В этой среде пользователь Polyspace, у которого не может быть Simulink, запускает отдельный анализ сгенерированного кода. При помощи упакованных файлов опций, областей значений проекта и другой информации модели специфичной сохраняется в анализе Polyspace.

  • Опции анализа, не доступные в Simulink: Некоторые опции анализа Polyspace доступны только, когда анализ Polyspace запущен отдельно от Simulink. Используйте упакованные файлы опций, чтобы запустить отдельный анализ Polyspace при сохранении информации модели специфичной. Например, анализируйте параллельные потоки в сгенерированном коде путем выполнения анализа Polyspace в сгенерированном коде при помощи упакованных файлов опций.

У вас должен быть Simulink, чтобы запустить функцию polyspacePackNGo. Вам не нужен Polyspace, чтобы сгенерировать файлы опций из модели Simulink. polyspacePackNGo функционируйте код поддержек, сгенерированный Embedded Coder® и TargetLink®. Для примера на использовании polyspacePackNGo, смотрите Анализируют Код, Сгенерированный как Автономный Код в Распределенном Рабочем процессе.

Сгенерируйте и упакуйте файлы опций Polyspace

Чтобы сгенерировать и упаковать файл опций Polyspace для анализа кода, сгенерированного из модели Simulink, использовать polyspacePackNGo.

  1. В Редакторе Simulink откройте диалоговое окно Configuration Parameters и сконфигурируйте модель для генерации кода.

  2. Чтобы сконфигурировать модель для совместимости с Polyspace, выберите ert.tlc как System target file

  3. Чтобы позволить генерировать архив кода, выберите опцию Package code and artifacts. Опционально, обеспечьте имя для пакета опций в поле Zip file name. Если ваш код содержит блок пользовательского кода, выберите Use the same custom code settings as Simulation target в панели Code Generation> Custom Code.

    В качестве альтернативы в Командном окне MATLAB®, введите:

    % Configure the Simulink model mdlName for code generation
    configSet = getActiveConfigSet(mdlName);
    set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
    set_param(configSet, 'PackageName', 'CodeArchive.zip');
    set_param(configSet, 'SystemTargetFile', 'ert.tlc');
    set_param(configSet,'RTWUseSimCustomCode','on');

  4. Сгенерируйте архив кода.

    • Чтобы сгенерировать архив автономного сгенерированного кода от топ-модели, используйте функцию slbuild.

    • Чтобы сгенерировать код как модель - ссылку, используйте функцию slbuild. После генерации кода как модель - ссылка создайте архив кода при помощи функции packNGo (Embedded Coder).

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

  5. Сгенерировать и упаковать файлы опции Polyspace, в командном окне MATLAB, использование polyspacePackNGo функция:

    zipFile = polyspacePackNGo(mdlName);
    Смотрите генерируют и упаковывают файлы опций Polyspace.

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

  6. Опционально, можно использовать pslinkoptions возразите в качестве второго аргумента, чтобы изменить настройку модели по умолчанию для анализа Polyspace. Создайте pslinkoptions возразите, измените настройки модели и задайте объект при создании архива:

    psOpt = pslinkoptions(mdlName);
    psOpt.InputRangeMode = 'FullRange';
    psOpt.ParamRangeMode = 'DesignMinMax';
    zipFile = polyspacePackNGo(mdlName,psOpt);
    
    Смотрите файлы опций Polyspace пакета, которые имеют определенные опции анализа Polyspace.

  7. Используйте дополнительный третий аргумент, чтобы задать, сгенерировать ли и упаковать файлы опций Polyspace для кода, сгенерированного как модель - ссылка. Предположим вы сгенерированный код как модель - ссылка при помощи slbuild функция. Сгенерировать и упаковать опции Polyspace для кода, в командном окне MATLAB, введите:

    zipFile = polyspacePackNGo(mdlName,[],true);
    Смотрите файлы опций Polyspace пакета для кода, сгенерированного как модель - ссылка.

    Функция polyspacepackNGo возвращает полный путь в архив, содержащий файлы опций. Файлы расположены в polyspace папка в заархивированной иерархии папок. Содержимое polyspace папка зависит от входных параметров polyspacePackNGo функция.

    • Если вы не задаете дополнительные вторые и третьи аргументы, то папка polyspace содержит эти файлы опций в плоской иерархии:

      • optionsFile.txt: Этот файл задает исходные файлы, включать файлы, технические требования области значений данных и опции анализа, требуемые для анализа сгенерированного кода при помощи Polyspace. Если ваш код содержит пользовательский код С, то этот файл задает относительные пути пользовательского источника и заголовочных файлов.

      • modelname_drs.xml: Этот файл задает спецификацию области значений проекта модели.

      • linkdata.xml: Этот файл соединяет сгенерированный код с компонентами модели.

    • Если вы задаете psOpts.ModelbyModelRef = true, затем соответствующие файлы опций сгенерированы для всех моделей, на которые ссылаются. Эти файлы опций хранятся в отдельных папках, названных polyspace_<referenced model name> в архиве кода. Папка polyspace содержит файлы опций для топ-модели.

Запустите анализ Polyspace при помощи упакованных файлов опций

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

  1. Разархивируйте код, архивируют и определяют местоположение polyspace папка.

  2. На Windows® или командной строке Linux®, запуске: productname - файл опций optionsFile.txt - dir результатов resultdir.

    • productname соответствует одному из: Polyspace Bug Finder, Polyspace Code Prover, сервер средства поиска ошибки полипробела или сервер программы автоматического доказательства полипробела кода.

    • resultdir соответствует местоположению результатов Polyspace. Этот аргумент является дополнительным.

    Соединить сгенерированный код с моделью Simulink, файл linkdata.xml требуется. В случае, если файл linkdata.xml не сгенерирован в архиве файла опций, используйте опцию Code Generator Support в Пользовательском интерфейсе рабочего стола Polyspace, чтобы задать, какие комментарии в коде действуют как ссылки на модель Simulink. В Пользовательском интерфейсе рабочего стола Polyspace выберите Tools> Preferences и найдите вкладку Miscellaneous. Из контекстного меню Code comments that act as code-to-model-link выберите генератор кода, который вы использовали. Если вы выбираете User defined, то задаете комментарии, которые действуют как ссылка кода к модели путем определения их префикса в поле Comments beginning with. Например, если вы задаете префикс как //Link_to_model, затем Polyspace интерпретирует комментарии начиная с //Link_to_model как соединяется с моделью.

    Если вы используете Polyspace доступ, чтобы просмотреть результаты, загрузите файл linkdata.xml в той же папке как ваши результаты Polyspace. Вы не можете соединить код с моделью Simulink, если у вас нет файла linkdata.xml или если вы загружаете его вне папки результата Polyspace.

  3. Чтобы рассмотреть результат, загрузите его на Polyspace доступ и просмотрите результаты в веб-браузере. В качестве альтернативы просмотрите результат при помощи пользовательского интерфейса десктопных решений Polyspace.

Смотрите также

| | (Embedded Coder)

Похожие темы