This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TMS570LC4357: TI ARM compiler is not qualified to any safety standards. How to use CQKIT to perform coverage check of TI ARM compiler for functional safety application?

Part Number: TMS570LC4357

The Safety Compiler Qualification Kit (CQKIT):

  • supports compiler coverage analysis
  • The certification of safety end-products requires a compiler toolchain used in development to be qualified according to the functional safety standards. The process of qualifying these tools known as ‘Tool Qualification’ or ‘Tool Validation’ can be time-consuming and expensive process. The end-users have to be responsible for the overall tool qualification process.

    The TI ARM compiler is not qualified to any safety standards. TI provides Compiler QKITs to enable customers to use TI compilers for functional safety development.

    We used the qualification kit approach instead of certifying compilers. The main reason is that we did not want to limit our customers to a subset of compiler options and use cases. The CQKIT approach allows for flexibility with how customers use our compilers (ie compiler options, language features, etc). The user of the compiler must apply the compiler QKIT.

    After CQKIT is installed, please do following for the coverage test:

    1. Download the instrumented compiler for your compiler version from the same tool folder where your QKIT installer was obtained.

        If you use compiler 20.2.6.LTS, please download ti_cgt_arm_20.2.6.LTS_bincov_win64.tar.bz2

         

         

    2. Unzip the “bincov” folder into a temporary location. This folder contains instrumented versions of all compiler tool chain executables along with coverage data collection files (*.cov files) for each executable.

        

    3. Rename the original compiler installation folder from "bin" to "bin_old". Create a new "bin" folder within your compiler installation folder and copy the executables and *.cov coverage files from the "bincov" folder to “bin” folder.

       

    4.  Set the environment variable COVFILELIST. This is a comma-separated list of the paths to all the compiler executable .cov files.

         Use below steps to set COVFILELIST in CCS:

    • Open “Project properties”
    • Click on “Build”
    • Click on tab for “Environment”
    • Click on “Add” and add COVFILELIST

        

    COVFILELIST=C:\ti_cgt_arm_20.2.6.LTS\bin\armcl.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armacpia.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armopt.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armcg. cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armasm.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armlnk.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armilk.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armhex.cov,C:\t i_cgt_arm_20.2.6.LTS\bin\armabs.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armembed.cov,C:\ti_ cgt_arm_20.2.6.LTS\bin\armlnk.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armacp.cov,C:\ti_cgt_ arm_20.2.6.LTS\bin\armcbe.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armclist.cov,C:\ti_cgt_ar m_20.2.6.LTS\bin\armnm.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armsdp.cov, C:\ti_cgt_arm_20. 2.6.LTS\bin\armcbeia.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armdem.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armocs.cov,C:\ti_cgt_arm_20.2.6.LTS\bin\armstrip.cov,C:\ti_cgt_arm_20.2.6 .LTS\bin\armar.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armdis.cov,C:\ti_cgt_arm_20.2.6.LTS\ bin\armlibinfo.cov, C:\ti_cgt_arm_20.2.6.LTS\bin\armofd.cov, C:\ti_cgt_arm_20.2.6.LTS\ bin\armxref.cov

    5. Build your application. Note that the time stamps for *.cov files update each time the instrumented executables are exercised.

        

    6. Once coverage data collection is complete, rename the "bin" folder to "bin.cov" and rename the original "bin.old" folder to "bin" to restore the original un-instrumented compiler executables.

    7. Zip all the *.cov files in “bin.cov” folder. Email this zip file and the list of compiler and linker options used for compiling your application to TI at safeti_cqkit_data@ti.com

     

    TI will perform a comparison of function coverage for your submitted coverage data files as compared to coverage data files collected during compiler release validations. TI will send a summary report.