6. Arm Cortex 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.