SPRUIG5E January   2018  – March 2023 TDA4VM , TDA4VM-Q1

 

  1.   Abstract
  2. 1About This Document
    1. 1.1 Related Documents
    2. 1.2 Trademarks
  3. 2Migrating C Source from C6000 to C7000
    1. 2.1  Compiler Options
    2. 2.2  Native Vector Data Types
    3. 2.3  Type Qualifiers: near and far
    4. 2.4  64-bit long Type
    5. 2.5  References to Control Registers
    6. 2.6  Memory-Mapped Peripherals
    7. 2.7  Run-Time Support
    8. 2.8  Contents of Migration Header File c6x_migration.h
      1. 2.8.1 Supported Macros
      2. 2.8.2 Non-Supported Macros
      3. 2.8.3 Legacy Data Types
      4. 2.8.4 Legacy Intrinsics
    9. 2.9  Galois Field Multiply Instructions
    10. 2.10 Performance Considerations for Migrated Code
      1. 2.10.1 UNROLL Pragma
      2. 2.10.2 Subvector Access
      3. 2.10.3 16x16 and 16x32 Bit Multiplies
      4. 2.10.4 __x128_t Type
      5. 2.10.5 Unsigned Array Offsets
      6. 2.10.6 Streaming Engine and Streaming Address Generator
      7. 2.10.7 Additional Optimization Guidance
  4. 3Host Emulation
  5. 4Revision History
    1.     29
    2.     30

Memory-Mapped Peripherals

Any use of memory-mapped registers and peripherals must be investigated and possibly changed.

  • Check the documentation for the appropriate SDK or CSL (Chip Support Library) to determine if a call to a peripheral needs modification.
  • If the code uses hard-coded addresses for a peripheral interface, those addresses will likely need to be changed.
  • If the code declares a memory-mapped pointer to a peripheral's control registers, must make sure that the volatile keyword is used when declaring/defining the pointer variable. This allows the compiler use the appropriate memory instructions to access memory-mapped data. (The compiler needs to know this information so that a regular, non-speculative load is used.)

We recommend that you use the appropriate SDK and CSL for your devices and consult the associated documentation.