

The option can also help to overcome situation when data transfer to the host is temporarily slowed down, e.g., due to USB bus congestions. This macro specifies the size of data which can be buffered in above conditions.

In order to avoid loss of such critical data, developers can enable additional data buffering via menuconfig option CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX.
#ESP LOGOIST CODE#
This is especially true for tracing from time critical code (ISRs, OS scheduler code, etc.) where infinite timeouts can lead to system malfunction. So when application tries to write data to the trace buffer using the finite value of the maximum waiting time, it is possible that this data will be dropped. Maximum waiting time is controlled via timeout values passed by users to corresponding API routines.
#ESP LOGOIST FREE#
In this mode, before writing new data to HW UP BUFFER, the tracing module checks that whether there is enough space in it and if necessary, waits for the host to read data and free enough memory. Streaming mode: Tracing module enters this mode when the host connects to ESP32. The host can read the data later on upon user request, e.g., via special OpenOCD command in case of working via JTAG interface. This mode is useful when only the latest trace data is interesting to the user, e.g., for analyzing program’s behavior just before the crash. In this mode, tracing module does not check whether the host has read all the data from HW UP BUFFER, but directly overwrites old data with the new ones. The mode does not need interaction with the host side. Post-mortem mode: This is the default mode. The library supports two modes of operation: Tracing Components Used When Working Over JTAG Modes of Operation Tracing components used when working over JTAG interface are shown in the figure below. See System Behavior Analysis with SEGGER SystemView. The main use cases of this library are:Ĭollecting application-specific data. The UART interface is mostly used for connection with SEGGER SystemView tool (see SystemView).ĭevelopers can use this library to send application-specific state of execution to the host and receive commands or other types of information from the opposite direction at runtime. It is possible to use JTAG and UART interfaces simultaneously. This feature allows to transfer arbitrary data between host and ESP32 via JTAG, UART, or USB interfaces with small overhead on program execution. It is implemented in the corresponding library and can be enabled in menuconfig. ESP-IDF provides a useful feature for program behavior analysis: application level tracing.
