TI Arm Clang Compiler Tools User’s Guide - 2.1.0.LTS¶
The TI Arm® code generation tools support development of applications for TI Arm-based platforms featuring TI Arm Cortex-M and Cortex-R series devices. There are now two Arm C/C++ compiler toolchains available from TI:
- TI Arm Clang C/C++ Compiler Tools (tiarmclang)
- TI Arm C/C++ Compiler Tools (armcl)
This user’s guide documents the TI Arm Clang C/C++ Compiler Tools. The tiarmclang compiler is based on the open source LLVM compiler infrastructure and its Clang front-end. tiarmclang uses the TI Linker and C runtime, which provide additional benefits for stability and reduced code size. Benefits of tiarmclang include:
- Excellent C/C++ standards support
- Source-based code coverage
- Support for migration from armcl
- Improved code size over armcl/gcc
- Ease of use with fast compiles and expressive diagnostic messages
- GCC compatibility
- Comprehensive documentation: Getting Started Guide, Migration Guide and Compiler Tools User Manual
- Compiler Qualification Kit to assist qualifying the compiler to functional safety standards such as ISO 26262 and IEC 61508.
Benefits of using the TI linker and C runtime include:
- Stability and flexibility, facilitating ongoing embedded differentiation for TI devices
- Pairs with C runtime library, which is optimized for reduced code size
- Function specialization, minimizing code size on common functions, including printf, memcpy, and memset
- Copy Table support, allowing automatic copying of code/data during runtime
- Initialized Data and Copy Table compression, reducing code size
- Security features such as ECC, CRC, and CMSE (for Cortex-M33)
- Optimized placement of function call trampolines
- Segmented memory spaces, allowing section placement into multiple ranges as well as split placement
- Compatibility with TI linker command files used with armcl
- Support for C preprocessing directives in TI linker command files, such as #define, #include, and #if/#endif
While the tiarmclang toolchain serves the same purpose as armcl, there are behavioral differences that need to be accounted for when making the transition from developing C/C++ applications with armcl to tiarmclang. Please refer to the armcl to tiarmclang Migration Guide for detailed guidance on making a smooth transition from armcl to tiarmclang.
The TI Arm Clang C/C++ Compiler Tools replace the existing TI Arm C/C++ Compiler Tools. All new feature development will be done in the TI Arm Clang C/C++ Compiler Tools. The last feature release of the armcl compiler toolchain is v20.2.x.LTS, which will continue to be actively supported as long as necessary. However, only bug fixes will be provided in maintenance releases of v20.2.x.LTS of the armcl.
Both toolchains can be used to compile and link C/C++ and assembly source files to build static executable applications. These applications can then be loaded and run on Arm Cortex-M and Cortex-R series devices. Depending on the device family you are using a specific compiler toolchain will be recommended. Please refer to the SDK for the device family for information on which toolchain to use.