Вы можете использовать более поздний выпуск Polyspace ® без изменения выпуска Simulink ®. См. раздел Поддержка Polyspace для MATLAB и Simulink из различных версий.
В такой конфигурации кросс-деблокирования используйте функцию pslinkrunCrossRelease для выполнения анализа Polyspace для кода, созданного с помощью Embedded Coder ®. При использовании Polyspace и Simulink из одной версии см. раздел Выполнение анализа Polyspace для кода, созданного из модели Simulink.
При запуске анализа Polyspace из другого выпуска MATLAB ® или Simulink:
Выпуск Polyspace должен быть более поздним по сравнению с выпуском Simulink.
Версия Simulink должна быть R2020b или более поздней.
Необходимо интегрировать Polyspace с Simulink. См. раздел Интеграция полиспейса с MATLAB и Simulink.
Эта конфигурация перекрестного выпуска не поддерживает анализ пользовательского кода в модели Simulink.
Чтобы выполнить анализ Polyspace кода, созданного с помощью более ранней версии Simulink, создайте архив кода из модели Simulink, а затем вызовите функцию pslinkrunCrossRelease. Создание и настройка pslinkoptions для изменения конфигурации модели. Список опций конфигурации, которые можно изменить, см. в разделе pslinkrunCrossRelease. Чтобы применить опции анализа Polyspace, используйте файл опций.
Открытие модели Simulink rtwdemo_roll и сконфигурируйте модель для генерации кода. См. раздел Рекомендуемые параметры конфигурации модели для анализа в пространстве.
% Load the model model = 'rtwdemo_roll'; load_system(model); % Configure the Solver configSet = getActiveConfigSet(model); set_param(configSet,'Solver','FixedStepDiscrete'); set_param(configSet, 'SystemTargetFile', 'ert.tlc');
Анализ перекрестного деблокирования требует упаковки созданного кода в архив кода. Установка опции PackageGeneratedCodeAndArtifacts кому true.
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true)
Создайте временные папки для создания кода и создайте код.
[TEMPDIR, CGDIR] = rtwdemodir(); slbuild(model);
mkdir CodeGenFolder; cd CodeGenFolder;
Чтобы указать конфигурацию модели для анализа Polyspace, используйте pslinkoptions объект. Чтобы выполнить анализ поиска ошибок, установите psOpt.VerificationMode кому 'BugFinder'.
% Create a Polyspace options object from the model. psOpts = pslinkoptions(model); % Set properties that define the Polyspace analysis. psOpts.VerificationMode = 'BugFinder';
Чтобы задать опции анализа Polyspace, создайте файл опций. Файл опций - это текстовый файл, содержащий опции Polyspace в плоском списке, по одной строке для каждого параметра. Например, чтобы включить все средства проверки и правила кодирования CERT C, создайте текстовый файл в текущей папке, содержащий соответствующие опции.
% Create Options file optFile = 'Options.txt'; fid = fopen(optFile,'wt'); option1 = '-checkers all'; option2 = '-cert-c all'; fprintf(fid, '%s\n%s', option1, option2); fclose(fid);
Запустите анализ Polyspace.
Чтобы задать конфигурации модели для выполнения анализа Polyspace, задайте объект psOpt в качестве дополнительного второго аргумента в pslinkrunCrossRelease.
Так как код создается как автономный, задайте третий аргумент asModelRef кому false.
Чтобы задать опции анализа Polyspace, укажите относительный путь к созданному файлу опций в качестве четвертого аргумента.
% Locate options file in the current folder optionsPath = fullfile(pwd,optFile); % Run Polyspace analysis [~,resultsFolder] = pslinkrunCrossRelease(model,psOpts,false,optionsPath); bdclose(model);
В потоке операций перекрестного деблокирования прямые вызовы таких функций, как polyspaceBugFinder или polyspaceCodeProver недоступны. Для открытия результатов используйте функцию pslinkfun.
Чтобы открыть результаты в интерфейсе пользователя Polyspace, используйте функцию pslinkfun. Вектор символов resultsFolder содержит полный путь к папке результатов.
pslinkfun('openresults', '-resultsfolder',resultsFolder);
Также можно загрузить результаты в приложение Polyspace Access. См. раздел Загрузка результатов в Polyspace Access (доступ к программе проверки кода Polyspace).
Обращайтесь к результатам. Дополнительные сведения см. в разделе Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
polyspacePackNGo | pslinkfun | pslinkrunCrossRelease | packNGo (встроенный кодер) | slbuild (Симулинк)