Когда вы запускаете анализ 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®.
Чтобы сгенерировать и группировать файл опций Polyspace для анализа кода, сгенерированного из модели Simulink, использовать polyspacePackNGo
.
В Редакторе Simulink откройте диалоговое окно Configuration Parameters и сконфигурируйте модель для генерации кода.
Чтобы сконфигурировать модель для совместимости с Polyspace, выберите ert.tlc
как System target file
Чтобы позволить генерировать архив кода, выберите опцию 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');
Сгенерируйте архив кода.
Чтобы сгенерировать архив автономного сгенерированного кода от топ-модели, используйте функцию rtwbuild
(Embedded Coder).
Чтобы сгенерировать код как модель - ссылку, используйте функцию slbuild
(Simulink). После генерации кода как модель - ссылка создайте архив кода при помощи функции packNGo
(Embedded Coder).
В качестве альтернативы можно использовать TargetLink, чтобы сгенерировать код. Создайте архив кода путем архивации сгенерированного кода в zip-файл.
Сгенерировать и группировать файлы опции Polyspace, в командном окне MATLAB, использование polyspacePackNGo
функция:
zipFile = polyspacePackNGo(mdlName);
Если вы используете TargetLink, чтобы сгенерировать код, то используйте имя подсистемы TargetLink в качестве входного параметра к polyspacepacknGo
.
Опционально, можно использовать pslinkoptions
возразите в качестве второго аргумента, чтобы изменить опции по умолчанию для анализа Polyspace. Создайте pslinkoptions
объект, содержащий дополнительные опции и, задает объект при создании архива:
psOpt = pslinkoptions(mdlName); psOpt.InputRangeMode = 'FullRange'; psOpt.ParamRangeMode = 'DesignMinMax'; zipFile = polyspacePackNGo(mdlName,psOpt);
Используйте дополнительный третий аргумент, чтобы задать, сгенерировать ли и группировать файлы опций Polyspace для кода, сгенерированного как модель - ссылка. Предположим вы сгенерированный код как модель - ссылка при помощи slbuild
функция. Сгенерировать и группировать опции Polyspace для кода, в командном окне MATLAB, введите:
zipFile = polyspacePackNGo(mdlName,psOpt,true);
Функция polyspacepackNGo
возвращает полный путь в архив, содержащий файлы опций. Файлы расположены в polyspace
папка в заархивированной иерархии папок. Содержимое polyspace
папка зависит от входных параметров polyspacePackNGo
функция.
Если вы не задаете дополнительные вторые и третьи аргументы, то папка polyspace
содержит эти файлы опций в плоской иерархии:
optionsFile.txt
: Этот файл задает исходные файлы, включать файлы, технические требования области значений данных и аналитические опции, требуемые для анализа сгенерированного кода при помощи Polyspace. Если ваш код содержит пользовательский код С, то этот файл задает относительные пути пользовательского источника и заголовочных файлов.
: Этот файл задает спецификацию области значений проекта модели.modelname
_drs.xml
linkdata.xml
: Этот файл соединяет сгенерированный код с компонентами модели.
Если вы задаете psOpts.ModelbyModelRef = true
, затем соответствующие файлы опций сгенерированы для всех моделей, на которые ссылаются. Эти файлы опций хранятся в отдельных папках, названных polyspace_
в архиве кода. Папка <referenced model name>
polyspace
содержит файлы опций для топ-модели.
Если архив кода и файлы опции Polyspace сгенерированы, можно использовать архив, чтобы запустить анализ Polyspace сгенерированного кода в различной среде разработки без Simulink.
Разархивируйте код, архивируют и определяют местоположение polyspace
папка.
На Windows® или командной строке Linux®, запуске:
. productname
- файл опций optionsFile.txt - dir результатов resultdir
соответствует одному из: Polyspace Bug Finder, Polyspace Code Prover, сервер средства поиска ошибки полипробела или сервер программы автоматического доказательства полипробела кода.productname
соответствует местоположению результатов Polyspace. Этот аргумент является дополнительным.resultdir
Если файл 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 доступ и просмотрите результаты в веб-браузере. В качестве альтернативы просмотрите результат при помощи пользовательского интерфейса десктопных решений Polyspace.
Сгенерируйте и файлы опций Polyspace пакета из модели Simulink при помощи функции polyspacepackNGo
. Используйте эти файлы опций, чтобы запустить анализ Polyspace сгенерированного кода, который использует информацию модели специфичную, такую как технические требования области значений проекта, не требуя Simulink.
Модель demo_math_operations
выполняет различные математические операции на входных параметрах модели. Модель имеет Функциональный блок C, который выполняет пользовательский код С. Модель также имеет блок C Caller, который вызывает функцию C GMean
, который реализован в исходном файле GMean.c. Чтобы открыть модель для генерации кода и упаковочного файла опций Polyspace, ищите текущую тему в браузере документации MATLAB и нажмите кнопку Open Model. В качестве альтернативы в командном окне MATLAB, вставке и запуске следующий код.
open_system('demo_math_operations');
Чтобы сконфигурировать модель для генерации кода и упаковочных файлов опций Polyspace, задайте эти параметры конфигурации:
Чтобы создать архив, содержащий сгенерированный код, установите 'PackageGeneratedCodeAndArtifacts'
к true
.
Задайте имя для архива кода. Например, определите имя к genCodeArchive.zip
.
Чтобы использовать установку пользовательского кода, заданную в Simulation Target во время генерации кода, установите 'RTWUseSimCustomCode'
к 'on'
.
Чтобы сделать модель и сгенерированный код совместимыми с Polyspace, установите ert.tlc
как системный конечный файл. Смотрите Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace.
В Командном окне или Редакторе, введите эти настройки параметра:
configSet = getActiveConfigSet('demo_math_operations'); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', 'genCodeArchive.zip'); set_param(configSet, 'SystemTargetFile', 'ert.tlc'); set_param(configSet,'RTWUseSimCustomCode','on')
Задайте папку для хранения сгенерированного кода. Запустить генерацию кода, в Командном окне или в Редакторе, введите:
codegenFolder = 'demo_math_operations_ert_rtw'; if exist(fullfile(pwd,codegenFolder), 'dir') == 0 rtwbuild('demo_math_operations') end
Поскольку PackageGeneratedCodeAndArtifacts
установлен в true
, сгенерированный код упаковывается в архив genCodeArchive.zip
.
Сгенерировать файлы опций Polyspace для сгенерированного кода, в Командном окне или в Редакторе, введите:
zipFile = polyspacePackNGo('demo_math_operations');
В архиве genCodeArchive.zip
, найдите файлы опций в папке
.<current folder>
/ полипробел
Разархивируйте архив кода genCodeArchive.zip
и найдите
папка.<current folder>
/ полипробел
Откройте терминал командной строки и измените вашу рабочую папку в polyspace
подпапка разархивированной папки при помощи cd
команда.
Запустите анализ Polyspace.
Чтобы запустить настольный анализ Polyspace, используйте любой polyspace-code-prover
или polyspace-bug-finder
. Чтобы запустить анализ Polyspace в сервере, используйте любой polyspace-bug-finder-server
или polyspace-code-prover-server
. Polyspace Bug Finder и Программа автоматического доказательства Кода анализируют код по-другому. Смотрите Выбирают Между Polyspace Bug Finder и Polyspace Code Prover.
Задайте файл optionsFile.txt
в качестве аргумента к -options-file
.
Чтобы запустить анализ программы автоматического доказательства Кода, запустите эту команду: polyspace-code-prover -options-file optionsFile.txt -results-dir Results
.
Следуйте за прогрессом анализа в файле журнала, который сгенерирован в Results
папка.
Просмотреть результаты в настольном пользовательском интерфейсе, в интерфейсе командной строки, введите: polyspace Results\ps_results.pscp
. Расширение ps_results
файл изменяется в зависимости от того, запускаете ли вы анализ Программы автоматического доказательства Кода или анализ Средства поиска Ошибки. Результат содержит несколько оранжевых проверок.
В качестве альтернативы загрузите результат на Polyspace доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Bug Finder Access)
Обратитесь к результатам. Для получения дополнительной информации смотрите Результаты Адреса Через Исправление ошибки или Комментарии.
polyspace.Project
| polyspacePackNGo
| packNGo
(Embedded Coder) | rtwbuild
(Embedded Coder) | slbuild
(Simulink)