Decoder and tracer for RISC-V E-Traces
This library provides a decoder and a tracer for the instruction tracing defined in the Efficient Trace for RISC-V specification. It provides:
- a decoder and an encoder for instruction trace payloads as well as a few relevant packet formats,
- a software trace encoder implementation, which produces payloads from user-defined steps of execution,
- a tracer which processes these payloads and generates a sequence of tracing items, each corresponding to a single traced instruction,
- a specialized instruction database with limited decoding capabilities,
- support for user-provided and external instruction types and
- various utilities, including types for handling trace encoder parameters.
Supported packet formats
The following packet formats are supported directly by this library:
- Unformatted Trace & Diagnostic Data Packet Encapsulation for RISC-V and
- Siemens Messaging Infrastructure.
Supported external instruction information types
In addition to a built-in type for instruction information, the following libraries are supported:
Supported trace encoders
Some aspects of support packets are defined by trace encoder implementations. This library provides an interface for abstracting them and support for the followng specific encoders (and, of course, compatible units):
- the reference encoder implementation and
- the PULP rv tracer.
License
This library is licensed under the Apache License 2.0.
Acknowledgment
Development of this library was partially funded by the German Federal Ministry of Research, Technology, and Space (BMFTR) within the project Scale4Edge (grant number 16ME0126).