Main Content

Default Polyspace Options for Code Generated with TargetLink

TargetLink Support

The Windows® version of Polyspace® Code Prover™ is compatible with dSPACE® Data Dictionary and TargetLink® Code Generator.

Polyspace Code Prover does support CTO generated code. However, for better results, MathWorks® recommends that you disable the CTO option in TargetLink before generating code. For more information, see the dSPACE documentation.

Because Polyspace Code Prover extracts information from the dSPACE Data Dictionary, you must regenerate the code before performing an analysis.

Default Options

Polyspace sets the following options by default:

-sources path_to_source_code
-results-dir results_folder_name
-I path_to_source_code
-D PST_ERRNO
-I dspaceroot\matlab\TL\SimFiles\Generic 
-I dspaceroot\matlab\TL\srcfiles\Generic 
-I matlabroot\polyspace\include 
-I matlabroot\extern\include
-I matlabroot\rtw\c\libsrc 
-I matlabroot\simulink\include 
-functions-to-stub=[rtIsNaN,rtIsInf,rtIsNaNF,rtIsInfF]
-scalar-overflows-behavior wrap-around
-boolean-types Bool

Note

dspaceroot and matlabroot are the dSPACE and MATLAB® tool installation directories respectively.

Lookup Tables

By default, Polyspace provides stubs for the lookup table functions. Supported lookup table types include TL_Lookup1D, TL_Lookup2D, TL_IndexSearch, and TL_Interpolation. The dSPACE data dictionary is used to define the return value ranges of the lookup table functions. If a lookup table function uses extrapolation to calculate output values beyond the specified input values, the range of the return value is the full range for the type of returned variable. You can disable this behavior from the Polyspace configuration menu.

Data Range Specification

You can constrain inputs, parameters, and outputs to lie within specified data ranges. See Work with Signal Ranges in Blocks (Simulink).

The software automatically creates a Polyspace constraints file using the dSPACE Data Dictionary for each global variable. The constraint information is used to initialize each global variable to the range of valid values as defined by the min..max information in the data dictionary. This information allows Polyspace software to model real values for the system during analysis. Carefully defining the min-max information in the model allows the analysis to be more precise, because only the range of real values is analyzed.

Note

Boolean types are modeled having a minimum value of 0 and a maximum of 1.

You can also manually define a constraint file in the Polyspace user interface. See Specify External Constraints for Polyspace Analysis. If you define a constraint file, the software appends the automatically generated information to the constraint file you create. Manually defined constraint information overrides automatically generated information for all variables.

Constraints cannot be applied to static variables. Therefore, the compilation flags -D static= is set automatically. It has the effect of removing the static keyword from the code. If you have a problem with name clashes in the global name space, either rename the variables or disable this option in Polyspace configuration.

Code Generation Options

From the TargetLink Main Dialog, it is recommended to:

  • Set the option Clean code

  • Unset the option Enable sections/pragmas/inline/ISR/user attributes

  • Turn off the compute to overflow (CTO) generation. Polyspace can analyze code generated with CTO, but the results may not be as precise.

When you install Polyspace, the tlcgOptions variable is updated with 'PolyspaceSupport', 'on' (see variable in 'C:\dSPACE\Matlab\Tl\config\codegen\tl_pre_codegen_hook.m' file).

Related Topics

External Websites