6. Processor Variants Supported by tiarmclang

The tiarmclang compiler toolchain supports development of applications that are to be loaded and run on one of the following Arm Cortex processor variants (applicable -mcpu and floating-point support options are listed for each):

  • Cortex-m0

    -mcpu=cortex-m0
    
  • Cortex-m0plus

    -mcpu=cortex-m0plus
    
  • Cortex-m3

    -mcpu=cortex-m3
    
  • Cortex-m4

    With FPv4SPD16 support:

    -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
    

    Without FPv4SPD16 support:

    -mcpu=cortex-m4 -mfloat-abi=soft
    
  • Cortex-m33

    With FPv5SPD16 support:

    -mcpu=cortex-m33 -mfloat-abi=hard -mfpu=fpv5-sp-d16
    

    Without FPv5SPD16 support:

    -mcpu=cortex-m33 -mfloat-abi=soft
    

Note

Enabling the Use of Custom Datapath Extension (CDE) Intrinsics

A TI Arm Cortex-M33 device may be equipped with a coprocessor that is able to execute custom datapath extension (CDE) instructions via intrinsics that are defined in arm_cde.h, which is included in the tiarmclang compiler tools installation.

To enable the use of CDE intrinsics in a C/C++ source file, you must include the arm_cde.h header file in your compilation unit prior to the first reference to a CDE intrinsic. You must also specify one of the following -march compiler options on the tiarmclang command-line:

-march=armv8.1-m.main+cdecp0

or

-march=thumbv8.1-m.main+cdecp0

For more information about the CDE intrinsics that are supported, please see Custom Datapath Extension (CDE) Intrinsics.

  • Cortex-r4

    Thumb mode with VFPv3D16

    -mcpu=cortex-r4 -mthumb -mfloat-abi=hard -mfpu=vfpv3-d16
    

    Thumb mode without VFPv3D16

    -mcpu=cortex-r4 -mthumb -mfloat-abi=soft
    

    Arm mode with VFPv3D16

    -mcpu=cortex-r4 -marm -mfloat-abi=hard -mfpu=vfpv3-d16
    

    Arm mode without VFPv3D16

    -mcpu=cortex-r4 -marm -mfloat-abi=soft
    
  • Cortex-r5

    Thumb mode with VFPv3D16

    -mcpu=cortex-r5 -mthumb -mfloat-abi=hard -mfpu=vfpv3-d16
    

    Thumb mode without VFPv3D16

    -mcpu=cortex-r5 -mthumb -mfloat-abi=soft
    

    Arm mode with VFPv3D16

    -mcpu=cortex-r5 -marm -mfloat-abi=hard -mfpu=vfpv3-d16
    

    Arm mode without VFPv3D16

    -mcpu=cortex-r5 -marm -mfloat-abi=soft
    

The tiarmclang compiler will default to the Cortex-M4 (“-mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16”) processor if you do not explicitly specify an -mcpu or -march option on the compiler command-line.