![Functional safety applications](images/qkit_automotive.png)
#Overview
To develop functionally safe applications, system designers typically need to ensure that the use of software tools is compliant with relevant functional safety standards. Both IEC 61508 (functional safety standard for industrial applications) and ISO 26262 (functional safety standard for automotive applications) require software development tools to be classified (and if needed qualified) for use in the development of functionally safe systems. Compilers are classified in the most stringent impact level based on their use to generate executable code. According to IEC 61508, compilers are classified as T3, which requires an assessment to determine potential failures and appropriate mitigation measures, along with further evidence which must be provided through tool validation. ISO 26262 is similar, with compilers being classified as TCL3 and the recommendations to qualify such TCL3 tools is summarized in Figure 1.
![qualification of software tools](images/qkit_qualificationofsoftwaretoolstable.png)
**Figure 1: Qualification of software tools classified TCL3**
In summary, IEC 61508 and ISO 26262 require some form of evidence to demonstrate that it is possible to detect or prevent potential errors of the compiler.
The TI Compiler Qualification Kit assists functional safety system designers in qualifying their use of the TI C/C++ Compilers per recommendations in the relevant functional safety standards. The TI Compiler Qualification Kit has been assessed by TÜV Nord to comply with IEC 61508, ISO 26262, and EN 50657, and was developed in collaboration with [Validas](https://www.validas.de/en/services/qualification/), a consulting company that specializes in software tool qualification. The TI Compiler Qualification Kit has been used by many TI customers for qualifying their use of TI’s Arm Compilers for functionally safe applications in industrial, automotive and rail. TI has additionally released qualification kits for C2000, CLA (Control Law Accelerator), C6000 and C7000 architectures.
In addition to the qualification kit approach, another approach for addressing functional safety recommendations for compiler compliance validation is to use a certified compiler. Certified compilers can address higher functional safety levels if the system use case is covered by the internal validations used during compiler certification. However, if the ultimate use case does not match one of the "certified" cases, then the system designer must still qualify usage of the compiler. The TI Compiler Qualification Kit is not limited by system use cases and supports using all compiler options and features.
The free TI Compiler Qualification Kit includes:
* QKIT User Guide
* Qualification documentation templates
* Tool Qualification Plan
* Tool Qualification Report
* Tool Safety Manual
* Tool Definition Report
* Tool Validation Report
* Tool Process Compliance Report
* Safety Standards Compliance Reports
* Instrumented version of the TI C/C++ Compiler
* TÜV Nord assessment report
System Designers can apply the TI Compiler Qualification Kit using below steps:
1. Determine qualification mode: There are two ways to apply the qualification kit. You must choose which qualification mode to use. Choose the process-based qualification mode for ASIL-A/B. Choose the validation-based qualification mode for ASIL-C/D or SIL levels. See Figure 1.
2. Fill out provided templates: Tool Qualification Plan, Tool Qualification Report and Tool Safety Manual with: tool version, description of use cases, results of reviewing known bug list with mitigations.
3. Review bugs: Review and assess known compiler bugs. Generate mitigations for bugs that impact the system use of the TI Compiler options and features.
4. For process-based qualification mode: (ASIL-A/B): Fill out the Tool Qualification Plan and Tool Qualification Report with results of performing system level confidence-in-use information check.
For validation-based qualification mode (ASIL-C/D and SIL): Ensure that system use case is among the configurations that were tested during release validations. Perform a code coverage check by building the application using a TI-provided instrumented version of the used compiler version. Instructions for coverage data collection are provided on the QKIT download page. Submit results to TI to compare with coverage data collected during release validations. TI will provide a coverage report.
5. Use the Tool Safety Manual: For both qualification modes, the system designer must adhere to the Tool Safety Manual when using the TI C/C++ Compiler during development of the functionally safe application.
![TI Compiler Qualification Kit application flow](images/qkit_toolqualificationflow.png)
**Figure 2: TI Compiler Qualification Kit application flow**
# Conclusion
Applying the TI Compiler Qualification Kit can help system designers validate that their use of the TI C/C++ Compiler is compliant with relevant recommendations in functional safety standards. The TI Compiler Qualification Kit can be obtained for free at below link. Download the TI Compiler Qualification Kit today and read more details about applying the Qualification Kit in the included QKIT user guide.