Software Static Analysis Tool(SSAT)

  1. SSAT Overview
  2. SSAT Execution
  3. SSAT Settings
  4. SSAT Result View
  5. SSAT Configuration

SSAT Overview

SSAT will inspect the following for vehicle-mounted software as per your needs:

Global Variable Initialization Check

Checks that all global variables contained in the target module are properly initialized. Proper variable initialization means that it is initialized with a declaration. That is, it checks whether the variable is initially specified in the declared syntax. If you are going through an initialization process elsewhere other than the declaration location, the declaration location will display as unsatisfactory as not initialized.

The check looks for the global variable and reports its location, and if there is no syntax for initializing it, it treats it as an error. This is meant as a device to prevent variable initialization from falling out.

API Usage Error Check

hecks the source code contained in the target module for violations of API usage rules.

Currently, AUTRON_OSEK supports AUTRON_AUTOSAR platforms.

It currently supports checks for five types of API usage errors.

API Usage Error Type

Recursive Function Check

Checks for calls that are called directly or recursively as indirect calls through function pointers, including when a continuous call cycles through a function call.

The recursive function is detected by Strongly Connected Components (SCC). Functions contained in SCC can be reached by other functions in any function, so all included functions are recursive.

Race Condition Check

A race condition for a global variable is a state in which a task writes to a global variable and can have a different effect on the value of the global variable, depending on the time or order of the operation. In this case, there is a risk of different results than expected, depending on the timing or order.

In a multi-task environment, global variables (including static variables) can be accessed by multiple tasks at the same time. As a way to prevent this approach, the use of sequential APIs allows you to configure critical sections and write to global variables only inside that section.

Race condition checks take critical sections into account in a multi-task environment to determine whether race conditions can occur in global variables. In other words, if a large number of processes write to a global variable where critical sections are not configured, a race condition is determined to exist. This check checks for the existence of race conditions for all global variables (including static variables) and provides information about which processes have write access to which variables if they exist.

SSAT Execution

To create an analysis

  1. Create an analysis accordint to Creating Analysis
  2. In the Analysis Type window, select SSAT. The SSAT Analysis Settings window is displayed.
  3. Set-up the analysis accoring to SSAT Settings, and click Apply button

To execute the analysis

To see the result

Generating Analysis Report

SSAT Settings

SSAT Settings Screen

Analysis Basics

Basic Information

Select analysis

Select analysis

Global Variable Initialization Check

Global Variable Initialization Check Settings

API Usage Error Check

API Usage Error Check Settings

Recursive Function Check

Race Condition Check

Task Group

Task Gropu List
Set up task groups
Manage task group lists
Manage task group lists
Edit Task Group screen
Edit Task Group screen

Critical section

Critical Section Settings

SSAT Result View

SSAT Results Screen

Global Variable Initialization Check Result

Global Variable Initialization Check Results

API usage error checking results

API usage error checking results

Recursive Function Check Result

Recursive Function Check Result

Race Condition Check Result

Race Condition Check Result

SSAT Configuration

SSAT Configuration

Race Condition Default Values

Code View Highlight Colors