- Introduction
- The ETB Library provides an application interface to program and drain the Embedded Trace Buffer (ETB). There are two kinds of ETB in TI devices, CSETB and TIETB. The ETBLib contains CCSv5 projects in the ETBLib/project directory specifying the supported devices and rules to pickup specific files and flags for different devices.
For C66xx devices using the TIETB in TI mode (enabling the ETB to be read while enabled and actively getting written) there is also an option to use the EDMA3 to drain the ETB to specified memory buffer.
- ETBLib_ExtMem data section
- There are two TI-ETBLib features that are enabled by linking the ETBLib_ExtMem data section to shared/non-cacheable memory.
- ETBLib handle sharing: This feature allows the ETB of core A to be initialized with a call to ETB_open from core A, and then additional ETBLib calls can be made from core B to access the core A ETB. See ETB_open() and ETB_gethandle() for details.
- CCS ETBLib data visualization: If you are using ETBLib in your application, but are debugging with CCS, this features allows visualization of trace data exported by ETBLib to external memory. A set of ETBLib symbols are allocated to the ETBLib_ExtMem section that are utilized by CCS to extract the trace data from memory. To take advantage of this feature, in CCSv5.4 and later, you simply need to change the "Transport Type" of a "Custom PC Trace" configuration (Tools->Hardware Trace Analyzer->Custom PC Trace) to "ETB Remote-memory".
- EDMA3 Drain Buffer
- The DMA drain buffer is used to increase the amount of storage used for trace data beyond the size of the ETB. The DMA uses the half-full and full interrupt from the ETB as a trigger to start a transaction that will read half of the ETB for each interrupt. For all Keystone1 devices except C6657, The ETB interrupts must get routed through the chip-level interrupt controller (INTCx) to interface with the EDMA3 controller. Where as in case of all keystone2 and C6657, the ETB half and full events are directly connected to the EDMA3 controller.
ETB-EDMA3 Drain Buffer Details
- Note
- If the Drain Buffer is located in MSMC or DDR3 memory, it should be put in a non-cacheable region.
- Devices supported by the library are:
- AM437x
- C6A816x, also referenced as TI816x (Netra)
- C66xx (C6670, TCI6614/16/18)
- C667x
- OMAP-A9
- OMAP-A15
- TCI6484
- TCI6488
- C6657
- C66AK2Hxx (Keystone 2)
- DRA7xx
- TDA3x
- API Functions:
-