esp32: SEGGER SystemView Tracing Support

Implements support for system level traces compatible with SEGGER
SystemView tool on top of ESP32 application tracing module.
That kind of traces can help to analyse program's behaviour.
SystemView can show timeline of tasks/ISRs execution, context switches,
statistics related to the CPUs' load distribution etc.

Also this commit adds useful feature to ESP32 application tracing module:
 - Trace data buffering is implemented to handle temporary peaks of events load
This commit is contained in:
Alexey Gerenkov
2017-03-22 06:07:37 +03:00
parent 8eeaef6eb6
commit 8d43859b6a
51 changed files with 7768 additions and 599 deletions
+44
View File
@@ -0,0 +1,44 @@
Application Level Tracing
=========================
Overview
--------
IDF provides useful feature for program behaviour analysis: application level tracing. It is implemented in the corresponding library and can be enabled via menuconfig. This feature allows to transfer arbitrary data between host and ESP32 via JTAG interface with small overhead on program execution.
Developers can use this library to send application specific state of execution to the host and receive commands or other type of info in the opposite direction at runtime. The main use cases of this library are:
1. System behaviour analysis.
2. Lightweight logging to the host.
3. Collecting application specific data.
API Reference
-------------
Header Files
^^^^^^^^^^^^
* :component_file:`app_trace/include/esp_app_trace.h`
Macros
^^^^^^
.. doxygendefine:: ESP_APPTRACE_TMO_INFINITE
Enumerations
^^^^^^^^^^^^
.. doxygenenum:: esp_apptrace_dest_t
Functions
^^^^^^^^^
.. doxygenfunction:: esp_apptrace_init
.. doxygenfunction:: esp_apptrace_buffer_get
.. doxygenfunction:: esp_apptrace_buffer_put
.. doxygenfunction:: esp_apptrace_write
.. doxygenfunction:: esp_apptrace_vprintf_to
.. doxygenfunction:: esp_apptrace_vprintf
.. doxygenfunction:: esp_apptrace_read
.. doxygenfunction:: esp_apptrace_flush
.. doxygenfunction:: esp_apptrace_flush_nolock
+1
View File
@@ -11,6 +11,7 @@ System API
Deep Sleep <deep_sleep>
Logging <log>
Base MAC address <base_mac_address>
Application Level Tracing <app_trace>
Example code for this API section is provided in :example:`system` directory of ESP-IDF examples.