Hello,
I am a PhD student from Virginia Commonwealth University. I wanted to use the OpenCSD tool to decode ETM and PTM traces.
I have downloaded the OpenCSD tool and have decoded the test examples that come with it. I have some questions about the tool:
1) OpenCSD Interface to read trace a) As a first step towards learning about OpenCSD, I have installed it on my PC. I have Cortex M4 and Cortex A9 boards that have ETM/PTM modules. What are the interfaces supported by OpenCSD to read the trace from these boards ? b) Are there any specific boards, software and interfaces that OpenCSD has been tested against ? c) Can OpenCSD decoder interface with debuggers such as Segger JTrace or Keil Ulink Pro and decode instruction traces read from them ? d) Can OpenCSD be installed on a ARM Cortex processor and decode the traces for an application running on the same processor or a co-processor?
2) Can we decode traces of exceptions, changes in processor instruction set state, changes in processor security state, global system timestamps with OpenCSD ?
3) Is there a way to get raw decoded traces which have only Atom information(branch taken or not) and addresses from OpenCSD ?
Thank you for your time and help with these questions.
regards, Smitha
Hi,
On Mon, 10 Aug 2020 at 22:58, Smitha Gautham gauthamsm@vcu.edu wrote:
Hello,
I am a PhD student from Virginia Commonwealth University. I wanted to use the OpenCSD tool to decode ETM and PTM traces.
I have downloaded the OpenCSD tool and have decoded the test examples that come with it. I have some questions about the tool:
- OpenCSD Interface to read trace
a) As a first step towards learning about OpenCSD, I have installed it on my PC. I have Cortex M4 and Cortex A9 boards that have ETM/PTM modules. What are the interfaces supported by OpenCSD to read the trace from these boards ?
OpenCSD is a library designed to decode raw trace - based on ETM architecture not individual cores / boards. Extracting the raw trace from boards / systems is not part of the library. The library is designed to be used as part of other tools - e.g. in linux the perf tool compiles in the library to decode trace collected from the coresight infrastructure on the relevant system. The trace protocol versions supported by the library are clearly stated in the README.md file in the documentation.
b) Are there any specific boards, software and interfaces that OpenCSD has been tested against ? c) Can OpenCSD decoder interface with debuggers such as Segger JTrace or Keil Ulink Pro and decode instruction traces read from them ?
Again - OpenCSD is associated with trace protocol & architecture not debuggers / boards. If you have a way of extracting the raw trace from any board it is possible to decode the trace as long as the protocol is supported.
d) Can OpenCSD be installed on a ARM Cortex processor and decode the traces for an application running on the same processor or a co-processor?
OpenCSD can be compiled into tools runniog on ARM platforms. Once trace has been collected then it can be decoded.
- Can we decode traces of exceptions, changes in processor instruction set state, changes in processor security state, global system timestamps with OpenCSD ?
See the architecture manual for the trace protocol associated with your trace architecture - openCSD will decode anything that is supported including the above elements.
- Is there a way to get raw decoded traces which have only Atom information(branch taken or not) and addresses from OpenCSD ?
Yes - please refer to the API documentation for details on this.
Regards
Mike
Thank you for your time and help with these questions.
regards, Smitha
CoreSight mailing list CoreSight@lists.linaro.org https://lists.linaro.org/mailman/listinfo/coresight