target/espressif: add application tracing functionality over JTAG
This feature allows to transfer arbitrary data between host and ESP32 via JTAG. The main use cases: 1- Collecting application specific data 2- Lightweight logging to the host 3- System behaviour analysis with SEGGER SystemView 4- Source code coverage Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: I95dee00ac22891fa326915a3fcac3c088cbb2afc Reviewed-on: https://review.openocd.org/c/openocd/+/7163 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
committed by
Antonio Borneo
parent
0384fe5d59
commit
8d1dcf293a
@@ -11137,6 +11137,46 @@ Stop current trace as started by the tracestart command.
|
||||
Dump trace memory to a file.
|
||||
@end deffn
|
||||
|
||||
@section Espressif Specific Commands
|
||||
|
||||
@deffn {Command} {esp apptrace} (start <destination> [<poll_period> [<trace_size> [<stop_tmo> [<wait4halt> [<skip_size>]]]]])
|
||||
Starts
|
||||
@uref{https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/app_trace.html#application-level-tracing-library, application level tracing}.
|
||||
Data will be stored to specified destination. Available destinations are:
|
||||
@itemize @bullet
|
||||
@item @code{file://<outfile>} - Save trace logs into file.
|
||||
@item @code{tcp://<host>:<port>} - Send trace logs to tcp port on specified host. OpenOCD will act as a tcp client.
|
||||
@item @code{con:} - Print trace logs to the stdout.
|
||||
@end itemize
|
||||
Other parameters will be same for each destination.
|
||||
@itemize @bullet
|
||||
@item @code{poll_period} - trace data polling period in ms.
|
||||
@item @code{trace_size} - maximum trace data size.
|
||||
Tracing will be stopped automatically when that amount is reached.
|
||||
Use "-1" to disable the limitation.
|
||||
@item @code{stop_tmo} - Data reception timeout in ms.
|
||||
Tracing will be stopped automatically when no data is received within that period.
|
||||
@item @code{wait4halt} - if non-zero then wait for target to be halted before tracing start.
|
||||
@item @code{skip_size} - amount of tracing data to be skipped before writing it to destination.
|
||||
@end itemize
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} {esp apptrace} (stop)
|
||||
Stops tracing started with above command.
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} {esp apptrace} (status)
|
||||
Requests ongoing tracing status.
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} {esp apptrace} (dump file://<outfile>)
|
||||
Dumps tracing data from target buffer. It can be useful to dump the latest data
|
||||
buffered on target for post-mortem analysis. For example when target starts tracing automatically
|
||||
w/o OpenOCD command and keeps only the latest data window which fit into the buffer.
|
||||
@uref{https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/app_trace.html#application-level-tracing-library, application level tracing}.
|
||||
Data will be stored to specified destination.
|
||||
@end deffn
|
||||
|
||||
@anchor{softwaredebugmessagesandtracing}
|
||||
@section Software Debug Messages and Tracing
|
||||
@cindex Linux-ARM DCC support
|
||||
|
||||
Reference in New Issue
Block a user