Когда вы запускаете Polyspace® на сгенерированном коде программное обеспечение автоматически считывает из сгенерированного кода следующую информацию:
initialize() функции
terminate() функции
step() функции
Список переменных параметра
Список переменных входов
Если вы запускаете Code Prover, программное обеспечение использует эту информацию для генерации main функция, которая:
Инициализирует параметры с помощью опции Polyspace Parameters (-variables-written-before-loop).
Вызывает функции инициализации с помощью опции Initialization functions (-functions-called-before-loop).
Инициализирует входы с помощью опции Inputs (-variables-written-in-loop).
Вызывает step функция, использующая опцию Step functions (-functions-called-in-loop).
Вызывает terminate функция, использующая опцию Termination functions (-functions-called-after-loop).
The main функция концептуально выглядит следующим образом:
init parameters \\ -variables-written-before-loop
init_fct() \\ -functions-called-before-loop
while(1){ \\ start main loop
init inputs \\ -variables-written-in-loop
step_fct() \\ -functions-called-in-loop
}
terminate_fct() \\ -functions-called-after-loopCode Prover использует эту сгенерированную main функция для выполнения последующего анализа.
Для кода С++, который генерируется с помощью Embedded Coder®, а initialize(), step(), и terminate() функции и связанные переменные являются членами класса или имеют глобальные возможности.