Bugfixes and updates to ETMv4 decoder.

1) ETMV4 spec inconsistency - fixed saving ExactMatch addresses to address regs stack
2) Fixed exception packet handling to correctly emit instr range packet before exception packet.
Exception packet no defines only the exception number and the pref return address if available in the prorocol.
3) Added in sub-type field for instruction range packet. Sub types identify branch with link and A64 rets for client code.
4) Ensure end of trace message flushes outstanding TS / CC / EV before stopping decode.

New excep code tested on A57 single step snapshot
15 files changed
tree: 5df11dde2d27d26e15a38bf4a46aa82af8740980
  1. ref_trace_decoder/
  2. .gitignore
  3. LICENSE
  4. README.md
README.md

OpenCSD - An open source CoreSight(tm) Trace Decode library {#mainpage}

This library provides an API suitable for the decode of ARM(r) CoreSight(tm) trace streams.

The library will decode formatted trace in three stages:-

  1. Frame Deformatting : Removal CoreSight frame formatting from individual trace streams.
  2. Packet Processing : Separate individual trace streams into discrete packets.
  3. Packet Decode : Convert the packets into fully decoded trace describing the program flow on a core.

The library is implemented in C++ with an optional "C" API.

CoreSight Trace Component Support.

Current Version 0.001

Current support:

  • ETMv4 instruction trace - packet processing and packet decode.
  • ETMv3 instruction and data trace - packet processing.
  • STM software trace - packet processing.

Support to be added:

  • ETMv3 instruction trace - packet decode.
  • PTM instruction trace - packet processing and decode.
  • ITM software trace - packet processing.
  • ETMv3 data trace - packet decode.
  • ETMv4 data trace - packet processing and decode.

Documentation

API Documentation is provided inline in the source header files, which use the doxygen standard mark-up. Run doxygen on the ./doxygen_config.dox file located in the ./docs directory..

doxygen ./doxygen_config.dox

This will produce the documentation in the ./docs/html directory. The doxygen configuration also includes the *.md files as part of the documentation.

Building the Library

See [build_libs.md](@ref build_lib) in the ./docs directory for build details.

Version and Modification Information

Version 0.001

Library initial development phase.

Licence Information

This library is licensed under the BSD three clause licence.

A copy of this license is in the LICENCE file included with the source code.