TMS570LC4357-EP: TMS570 Compiler Selection

Part Number: TMS570LC4357-EP

We are using a TMS570 in a safety critical application, so we plan to use TI's safety libraries. We are currently using TI's ARM compiler v20 LTS. It is understood that v20 LTS is not being updated to newer versions and the clang compiler is the fully supported compiler moving forward. I have noticed that the clang compiler does have a qualification kit for safety critical applications. Is there any concern using the clang compiler for the TMS570 while still needing to use TI's safety libraries? Are there any other concerns that we might have migrating to clang?

  • Hello Justin,

    Thank you for your question regarding the migration from TI ARM Compiler v20 LTS to the Clang compiler for your TMS570LC4357-EP safety-critical application.

    Clang Compiler with TI Safety Libraries:

    You can use the Clang compiler with TI's safety libraries for the TMS570. The TI ARM Clang Compiler Toolchain does include a qualification kit suitable for safety-critical applications. However, there are important considerations for your migration:

    Key Points:

    1. Safety Library Compatibility: The SafeTI Hercules Diagnostic Library and other TMS570 safety libraries support the Clang compiler. Ensure you are using the latest versions of both the compiler and safety libraries, as compatibility and qualification documentation is version-specific.

    2. Compiler Qualification: The TI ARM Clang Compiler includes IEC 61508 and ISO 26262 qualification support packages. These provide the necessary documentation and test results for safety certification activities.

    Migration Considerations:

    When migrating from ARM Compiler v20 LTS to Clang, you will encounter several technical differences:

    • Intrinsics and Built-ins: Some compiler-specific intrinsics may have different names or syntax in Clang. Review your code for ARM CGT-specific intrinsics.
    • Inline Assembly: Assembly syntax differs between compilers and will require updates.
    • Pragma Directives: Certain pragmas may need to be replaced with Clang equivalents.
    • Linker Command Files: Syntax differences may require modifications to your linker scripts.
    • Code Generation: Optimization behavior differs, which may affect code size, performance, and timing. Re-verify timing constraints and memory budgets.
    • Build Configuration: Update your build system to use the Clang toolchain paths and options.

    Recommendations:

    1. Consult the TI ARM Clang Compiler User's Guide for migration guidance and compiler-specific features.
    2. Review the SafeTI Diagnostic Library documentation for Clang-specific integration notes.
    3. Perform thorough regression testing of all safety mechanisms after migration.
    4. Re-run your safety library diagnostic test suites to verify functionality.
    5. Document all code changes and validation activities for your safety certification records.
    6. Consider the impact on your safety certification timeline, as toolchain changes may require additional review by your certification body.

    The migration to Clang is a supported path forward, and TI provides the necessary qualification materials for safety-critical applications. The key is ensuring thorough testing and documentation of the migration process.

    Best Regards,
    Zackary Fleenor

  • Thank you for your thorough reply. This is very helpful. We are also using DWARF 4 debugging information in our software process. In the User's Manual it states that DWARF 4 is not yet supported but will be supported in future releases of the compiler. Is there a date that DWARF 4 might be supported by?

  • Hi Justin,

    DWARF 4 will be supported as part of the ARM Clang 6.0.LTS release, which is currently planned for Q1 of 2027.

    Thanks and regards,
    Mackay