SPRACZ7 January   2022 TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28232 , TMS320F28232-Q1 , TMS320F28234 , TMS320F28234-Q1 , TMS320F28235 , TMS320F28235-Q1 , TMS320F28332 , TMS320F28333 , TMS320F28334 , TMS320F28335 , TMS320F28335-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   Trademarks
  2. Introduction
    1. 1.1 Abbreviations
  3. Central Processing Unit (CPU)
  4. Development Tools
    1. 3.1 Driver Library (Driverlib)
    2. 3.2 Embedded Application Binary Interface (EABI) Support
  5. Package and Pinout
  6. Operating Frequency and Power Management
  7. Power Sequencing
  8. Input Clock Options
  9. Memory Map
  10. Flash and OTP
    1. 9.1 Size and Number of Sectors
    2. 9.2 Flash Parameters
    3. 9.3 Flash Programming
    4. 9.4 Entry Point into Flash
    5. 9.5 Dual Code Security Module (DCSM) and Password Locations
    6. 9.6 OTP
  11. 10Boot ROM
    1. 10.1 Boot ROM Reserved RAM
    2. 10.2 Boot Mode Selection
    3. 10.3 Bootloaders
  12. 11Architectural Enhancements
    1. 11.1 Clock Sources and Domains
    2. 11.2 Watchdog Timer
    3. 11.3 Peripheral Interrupt Expansion (PIE)
    4. 11.4 Lock Protection Registers
    5. 11.5 General-Purpose Input/Output (GPIO)
    6. 11.6 External Interrupts
    7. 11.7 Crossbar (X-BAR)
  13. 12Peripherals
    1. 12.1 New Peripherals
      1. 12.1.1 Analog Subsystem Interconnect
      2. 12.1.2 Comparator Subsystem (CMPSS)
      3. 12.1.3 Control Law Accelerator (CLA)
    2. 12.2 Control Peripherals
      1. 12.2.1 Enhanced Pulse Width Modulator (ePWM)
      2. 12.2.2 Enhanced Capture Module (eCAP)
      3. 12.2.3 Enhanced Quadrature Encode Pulse Module (eQEP)
      4. 12.2.4 Sigma-Delta Filter Module (SDFM)
    3. 12.3 Analog Peripherals
      1. 12.3.1 Analog-to-Digital Converter (ADC)
    4. 12.4 Communication Peripherals
      1. 12.4.1 SPI
      2. 12.4.2 SCI
      3. 12.4.3 USB
      4. 12.4.4 I2C
      5. 12.4.5 CAN
  14. 13Configurable Logic Block (CLB)
  15. 14Device Comparison Summary
  16. 15References

Embedded Application Binary Interface (EABI) Support

The F2837xD/S/07x devices are among the first C2000 device families to support both Common Object File Format (COFF) and Embedded Application Binary Interface (EABI). Refer https://software-dl.ti.com/C2000/docs/optimization_guide/phase1/index.html#application-binary-interface-abi for more information. EABI overcomes several limitations of COFF, which includes the symbolic debugging information not being capable of supporting C/C++, and the limit on the maximum number of sections and length of section names and source files. Note that EABI and COFF are not compatible and conversion between the two formats is not possible. The following is a brief summary of EABI differences compared to COFF.

  • Direct initialization
    • Uninitialized data is zero by default in EABI.
    • Initialization of RW data is accomplished via linker-generated compressed copy tables in EABI.
  • C++ language support
    • C++ inline function semantics: In COFF, inline functions are treated as static inline and this causes issues for functions that cannot be inlined or have static data. In EABI, inline functions without the ‘static’ qualifier have external linkage.
    • Better template instantiation: COFF uses a method called late template instantiation and EABI uses early template instantiation. Late template instantiation can run into issues with library code and can result in long link times. Early instantiation uses ELF COMDAT to guarantee templates are always instantiated properly and at most one version of each instantiation is present in the final executable.
    • Table-Driven Exception Handling (TDEH): Almost zero impact on code performance as opposed to COFF which uses setjmp/longjmp to implement C++ exceptions Features enabled by EABI.
  • Features enabled by EABI
    • Location attribute: Specify the run-time address of a symbol in C-source code.
    • Noinit/persistent attribute: Specify if a symbol should not be initialized during C auto initialization.
    • Weak attribute: Weak symbol definitions are pre-empted by strong definitions. Weak symbol references are not required to be resolved at link time. Unresolved weak symbols resolve to 0.
    • External aliases: In COFF, the compiler will make A an alias to B if all calls to A can be replaced with B. A and B must be defined in the same file. In EABI, the compiler will make A an alias to B even if B is external.
  • Calling convention
    • Scalar calling convention is identical between COFF and EABI.
    • Struct calling convention (EABI):
      • Single field structs are passed/returned by value corresponding to the underlying scalar types.
      • For FPU32, homogenous float structs with size less than 128 bits will be passed by value.
      • Passed in R0H-R3H, then by value on the stack.
      • Structs that are passed by value are also candidates for register allocation.
      • For FPU64, the same applies for 64-bit doubles (R0-R3).
  • Double memory size
    • In EABI, double is 64-bit size while in COFF, double is still represented as 32-bit size.
    • C/C++ requires that double be able to represent integer types with at least 10 decimal digits, which effectively requires 64-bit double precision.

Table 3-1 summarizes the compiler-generated section names used by COFF and EABI.

Table 3-1 Section Names
Description COFF EABI
Read-Only Sections
Constdata .econst .const
Constdata above 22-bits .farconst .farconst
Code .text .text
Pre-main constructors .pinit .init_array
Exception handling N/A .c28xabi.exidx/.c28xabi.extab
Read-Write Sections
Uninitialized data .ebss .bss
Initialized data N/A .data
Uninitialized data above 22-bits .farbss .farbss
Initialized data above 22-bits N/A .fardata
Heap .esysmem .sysmem
Stack .stack .stack
CIO Buffer .cio .bss:cio

For more information about EABI and the migration process, see the following reference guides: