Tasks (-entry-points)

Задайте функции, которые служат задачами для вашего многозадачного приложения

Описание

Эта опция недоступна для кода, сгенерированного из MATLAB® код или Simulink® модели.

Задайте функции, которые служат задачами вашему коду. Если функция не существует, верификация предупреждает вас и продолжает верификацию.

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция доступна на узле Multitasking. Смотрите Зависимости для других опций, которые вы также должны включить.

Командная строка и файл опций: Используйте опцию -entry-points. См. «Информация о командной строке».

Зачем использовать эту опцию

Используйте эту опцию, когда ваш код предназначен для многозадачности.

Чтобы задать циклические задачи и прерывания, используйте опции Cyclic tasks (-cyclic-tasks) и Interrupts (-interrupts). Используйте эту опцию для задания других задач.

Анализ Code Prover использует ваши спецификации, чтобы определить:

  • Является ли глобальная переменная общей.

    См. Раздел «Глобальные переменные»

  • Может ли возникнуть ошибка времени выполнения.

    Для образца, если операция var++ происходит в теле циклической задачи, и вы не накладываете предел на varоперация может переполниться. Анализ обнаруживает возможное переполнение.

Анализ Bug Finder использует ваши спецификации для поиска дефектов параллелизма. Для получения дополнительной информации см. «Дефекты параллелизма».

Настройки

По умолчанию нет

Введите имена функции или выберите из списка.

  • Щелкните, чтобы добавить поле и ввести имя функции.

  • Щелкните, чтобы отобразить функции в коде. Выберите функции из списка.

Зависимости

Чтобы включить эту опцию в пользовательском интерфейсе продуктов для настольных ПК, сначала выберите опцию Configure multitasking manually.

Совет

  • В Code Prover функции, представляющие точки входа, должны иметь форму

    void functionName (void)

  • Если функция func принимает аргументы или возвращает значение, вы не можете использовать его непосредственно как точку входа. Как использовать func в качестве точки входа:, вызов func от обертки void- void и укажите оболочку как точку входа. Смотрите Настройку многозадачного анализа Polyspace вручную.

  • Если вы задаете функцию как задачу, необходимо предоставить ее определение. В противном случае верификация Code Prover останавливается с сообщением об ошибке:

    task func_name must be a userdef function without parameters

    Анализ Bug Finder продолжается, но не рассматривает функцию как точку входа.

  • Если вы запускаете файл по верификации файла в Code Prover, ваши опции многозадачности игнорируются. См. Verify files independently (-unit-by-unit).

  • Polyspace® многозадачный анализ принимает, что задача не может прервать себя.

Информация о командной строке

Параметр: -entry-points
По умолчанию нет
Значение: function1[, function2[,...]]
Пример (Bug Finder): Polyspace Bug Finder -sources file_name -entry-points func_1,func_2
Пример (Code Prover): Polyspace Code Prover -sources file_name -entry-points func_1,func_2
Пример (Bug Finder Server): polyspace-bug-finder-server -sources file_name -entry-points func_1,func_2
Пример (Код Prover Server): Полипространство -code-prover-server -sources file_name -entry-points func_1,func_2