SPRUJG0 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Performance Optimization
    1. 2.1 Compiler Settings
      1. 2.1.1 Enabling Debug and Source Inter-listing
      2. 2.1.2 Optimization Control
      3. 2.1.3 Floating-Point Math
      4. 2.1.4 Fixed-Point Division
      5. 2.1.5 Single vs Double Precision Floating-Point
    2. 2.2 Memory Settings
      1. 2.2.1 Executing Code From RAM
      2. 2.2.2 Executing Code From Flash
      3. 2.2.3 Data Placement
    3. 2.3 Code Construction and Configuration
      1. 2.3.1 Inlining
      2. 2.3.2 Intrinsics
      3. 2.3.3 Volatile Variables
      4. 2.3.4 Function Arguments
    4. 2.4 Application Code Optimization
      1. 2.4.1 Optimized SDK Libraries
      2. 2.4.2 Optimizing Code-Size With Libraries
      3. 2.4.3 C29 Special Instructions
      4. 2.4.4 C29 Parallelism
      5. 2.4.5 32-Bit Variables and Writes Preferred
  6. 3References

Single vs Double Precision Floating-Point

If FPU64 is available (CPU3 on F29H85x), double-precision floating point operations can be efficiently performed. To enable use of the FPU64, use the compiler option:

-mfpu=f64

On the C29, EABI is the only supported executable format. COFF is not supported. With EABI, the double type is 64-bits. User code that contains literal constants (1.54) without a trailing 'f' (1.54f) is interpreted as double precision per the C standard. This leads to implicit conversion of other associated variables to double precision, which negatively impacts performance when FPU64 is not available (CPU3 on F29H85x).

Using the following compiler option will generate a warning when the above occurs:

-Wdouble-promotion