Skip to content

Commit fb3e616

Browse files
committed
Merge branch 'apptrace_breaking_changes' into 'master'
Apptrace breaking changes Closes IDF-9993 and IDF-4316 See merge request espressif/esp-idf!40380
2 parents c8f68c7 + 8a2692e commit fb3e616

File tree

12 files changed

+120
-76
lines changed

12 files changed

+120
-76
lines changed

components/app_trace/Kconfig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ menu "Application Level Tracing"
88

99
config APPTRACE_DEST_JTAG
1010
bool "JTAG"
11-
select APPTRACE_DEST_TRAX if IDF_TARGET_ARCH_XTENSA
11+
select APPTRACE_TRAX_ENABLE if IDF_TARGET_ARCH_XTENSA
1212
select APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE
1313
select APPTRACE_ENABLE
1414

@@ -135,7 +135,7 @@ menu "Application Level Tracing"
135135
UART task priority. In case of high events rate,
136136
this parameter could be changed up to (configMAX_PRIORITIES-1).
137137

138-
config APPTRACE_DEST_TRAX
138+
config APPTRACE_TRAX_ENABLE
139139
bool
140140
depends on IDF_TARGET_ARCH_XTENSA && !ESP32_TRAX && !ESP32S2_TRAX && !ESP32S3_TRAX
141141
select ESP32_MEMMAP_TRACEMEM
@@ -186,7 +186,7 @@ menu "Application Level Tracing"
186186

187187
config APPTRACE_BUF_SIZE
188188
int "Size of the apptrace buffer"
189-
depends on APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE && !APPTRACE_DEST_TRAX
189+
depends on APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE && !APPTRACE_TRAX_ENABLE
190190
default 16384
191191
help
192192
Size of the memory buffer for trace data in bytes.

components/app_trace/app_trace.c

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0 OR MIT
55
*/
@@ -80,31 +80,30 @@ ESP_SYSTEM_INIT_FN(esp_apptrace_init, SECONDARY, ESP_SYSTEM_INIT_ALL_CORES, 115)
8080
return esp_apptrace_init();
8181
}
8282

83-
void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size)
83+
esp_err_t esp_apptrace_down_buffer_config(esp_apptrace_dest_t dest, uint8_t *buf, uint32_t size)
8484
{
8585
esp_apptrace_channel_t *ch;
8686

87+
if (dest >= ESP_APPTRACE_DEST_MAX) {
88+
return ESP_ERR_INVALID_ARG;
89+
}
90+
if (buf == NULL || size == 0) {
91+
return ESP_ERR_INVALID_ARG;
92+
}
8793
if (!s_inited) {
88-
return;
89-
}
90-
// currently down buffer is supported for JTAG interface only
91-
// TODO: one more argument should be added to this function to specify HW interface: JTAG, UART0 etc
92-
ch = &s_trace_channels[ESP_APPTRACE_DEST_JTAG];
93-
if (ch->hw != NULL) {
94-
if (ch->hw->down_buffer_config != NULL) {
95-
ch->hw->down_buffer_config(ch->hw_data, buf, size);
96-
}
97-
} else {
98-
ESP_APPTRACE_LOGD("Trace destination for JTAG not supported!");
94+
return ESP_ERR_INVALID_STATE;
9995
}
100-
ch = &s_trace_channels[ESP_APPTRACE_DEST_UART];
101-
if (ch->hw != NULL) {
102-
if (ch->hw->down_buffer_config != NULL) {
103-
ch->hw->down_buffer_config(ch->hw_data, buf, size);
104-
}
105-
} else {
106-
ESP_APPTRACE_LOGD("Trace destination for UART not supported!");
96+
97+
ch = &s_trace_channels[dest];
98+
if (ch->hw == NULL) {
99+
ESP_APPTRACE_LOGE("Trace destination %d not supported!", dest);
100+
return ESP_FAIL;
101+
}
102+
if (ch->hw->down_buffer_config != NULL) {
103+
ch->hw->down_buffer_config(ch->hw_data, buf, size);
107104
}
105+
106+
return ESP_OK;
108107
}
109108

110109
uint8_t *esp_apptrace_down_buffer_get(esp_apptrace_dest_t dest, uint32_t *size, uint32_t user_tmo)

components/app_trace/gcov/gcov_rtio.c

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -46,14 +46,19 @@ void gcov_dump_task(void *pvParameter)
4646
goto gcov_exit;
4747
}
4848
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
49-
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
49+
esp_err_t res = esp_apptrace_down_buffer_config(ESP_APPTRACE_DEST_JTAG, down_buf, ESP_GCOV_DOWN_BUF_SIZE);
50+
if (res != ESP_OK) {
51+
ESP_EARLY_LOGE(TAG, "Failed to config apptrace down buf (%d)!", res);
52+
dump_result = res;
53+
goto gcov_exit;
54+
}
5055
ESP_EARLY_LOGV(TAG, "Dump data...");
5156
__gcov_dump();
5257
// reset dump status to allow incremental data accumulation
5358
__gcov_reset();
5459
free(down_buf);
5560
ESP_EARLY_LOGV(TAG, "Finish file transfer session");
56-
dump_result = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
61+
dump_result = esp_apptrace_fstop(ESP_APPTRACE_DEST_JTAG);
5762
if (dump_result != ESP_OK) {
5863
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", dump_result);
5964
}
@@ -119,7 +124,7 @@ void esp_gcov_dump(void)
119124
{
120125
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
121126

122-
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
127+
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_JTAG)) {
123128
vTaskDelay(pdMS_TO_TICKS(10));
124129
}
125130

@@ -134,48 +139,48 @@ void esp_gcov_dump(void)
134139
void *gcov_rtio_fopen(const char *path, const char *mode)
135140
{
136141
ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode);
137-
void *f = esp_apptrace_fopen(ESP_APPTRACE_DEST_TRAX, path, mode);
142+
void *f = esp_apptrace_fopen(ESP_APPTRACE_DEST_JTAG, path, mode);
138143
ESP_EARLY_LOGV(TAG, "%s ret %p", __FUNCTION__, f);
139144
return f;
140145
}
141146

142147
int gcov_rtio_fclose(void *stream)
143148
{
144149
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
145-
return esp_apptrace_fclose(ESP_APPTRACE_DEST_TRAX, stream);
150+
return esp_apptrace_fclose(ESP_APPTRACE_DEST_JTAG, stream);
146151
}
147152

148153
size_t gcov_rtio_fread(void *ptr, size_t size, size_t nmemb, void *stream)
149154
{
150155
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size * nmemb);
151-
size_t sz = esp_apptrace_fread(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
156+
size_t sz = esp_apptrace_fread(ESP_APPTRACE_DEST_JTAG, ptr, size, nmemb, stream);
152157
ESP_EARLY_LOGV(TAG, "%s actually read %u", __FUNCTION__, sz);
153158
return sz;
154159
}
155160

156161
size_t gcov_rtio_fwrite(const void *ptr, size_t size, size_t nmemb, void *stream)
157162
{
158163
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
159-
return esp_apptrace_fwrite(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
164+
return esp_apptrace_fwrite(ESP_APPTRACE_DEST_JTAG, ptr, size, nmemb, stream);
160165
}
161166

162167
int gcov_rtio_fseek(void *stream, long offset, int whence)
163168
{
164-
int ret = esp_apptrace_fseek(ESP_APPTRACE_DEST_TRAX, stream, offset, whence);
169+
int ret = esp_apptrace_fseek(ESP_APPTRACE_DEST_JTAG, stream, offset, whence);
165170
ESP_EARLY_LOGV(TAG, "%s(%p %ld %d) = %d", __FUNCTION__, stream, offset, whence, ret);
166171
return ret;
167172
}
168173

169174
long gcov_rtio_ftell(void *stream)
170175
{
171-
long ret = esp_apptrace_ftell(ESP_APPTRACE_DEST_TRAX, stream);
176+
long ret = esp_apptrace_ftell(ESP_APPTRACE_DEST_JTAG, stream);
172177
ESP_EARLY_LOGV(TAG, "%s(%p) = %ld", __FUNCTION__, stream, ret);
173178
return ret;
174179
}
175180

176181
int gcov_rtio_feof(void *stream)
177182
{
178-
int ret = esp_apptrace_feof(ESP_APPTRACE_DEST_TRAX, stream);
183+
int ret = esp_apptrace_feof(ESP_APPTRACE_DEST_JTAG, stream);
179184
ESP_EARLY_LOGV(TAG, "%s(%p) = %d", __FUNCTION__, stream, ret);
180185
return ret;
181186
}

components/app_trace/include/esp_app_trace.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ extern "C" {
1818
* Application trace data destinations bits.
1919
*/
2020
typedef enum {
21-
ESP_APPTRACE_DEST_JTAG = 1, ///< JTAG destination
22-
ESP_APPTRACE_DEST_TRAX = ESP_APPTRACE_DEST_JTAG, ///< xxx_TRAX name is obsolete, use more common xxx_JTAG
23-
ESP_APPTRACE_DEST_UART, ///< UART destination
24-
ESP_APPTRACE_DEST_MAX = ESP_APPTRACE_DEST_UART + 1,
25-
ESP_APPTRACE_DEST_NUM
21+
ESP_APPTRACE_DEST_JTAG, ///< JTAG destination
22+
ESP_APPTRACE_DEST_UART, ///< UART destination
23+
ESP_APPTRACE_DEST_MAX,
2624
} esp_apptrace_dest_t;
2725

2826
/**
@@ -39,10 +37,13 @@ esp_err_t esp_apptrace_init(void);
3937
* @note Needs to be called before attempting to receive any data using esp_apptrace_down_buffer_get and esp_apptrace_read.
4038
* This function does not protect internal data by lock.
4139
*
40+
* @param dest Indicates HW interface to configure.
4241
* @param buf Address of buffer to use for down channel (host to target) data.
4342
* @param size Size of the buffer.
43+
*
44+
* @return ESP_OK on success, otherwise see esp_err_t
4445
*/
45-
void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size);
46+
esp_err_t esp_apptrace_down_buffer_config(esp_apptrace_dest_t dest, uint8_t *buf, uint32_t size);
4647

4748
/**
4849
* @brief Allocates buffer for trace data.
@@ -117,7 +118,7 @@ esp_err_t esp_apptrace_flush(esp_apptrace_dest_t dest, uint32_t tmo);
117118
* This is a special version of esp_apptrace_flush which should be called from panic handler.
118119
*
119120
* @param dest Indicates HW interface to flush data on.
120-
* @param min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
121+
* @param min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. JTAG destinations only.
121122
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
122123
*
123124
* @return ESP_OK on success, otherwise see esp_err_t

components/app_trace/sys_view/esp/SEGGER_RTT_esp.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static uint8_t s_down_buf[SYSVIEW_DOWN_BUF_SIZE];
4242
#endif // CONFIG_APPTRACE_SV_DEST_CPU_0
4343

4444
#elif CONFIG_APPTRACE_SV_DEST_JTAG || (CONFIG_APPTRACE_ENABLE && CONFIG_APPTRACE_DEST_UART_NONE)
45-
#define ESP_APPTRACE_DEST_SYSVIEW ESP_APPTRACE_DEST_TRAX
45+
#define ESP_APPTRACE_DEST_SYSVIEW ESP_APPTRACE_DEST_JTAG
4646
#endif
4747

4848
/*********************************************************************
@@ -60,7 +60,7 @@ static uint8_t s_down_buf[SYSVIEW_DOWN_BUF_SIZE];
6060
* Flushes buffered events.
6161
*
6262
* Parameters
63-
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
63+
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. JTAG destinations only.
6464
* tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
6565
*
6666
* Return value
@@ -91,7 +91,7 @@ void SEGGER_RTT_ESP_FlushNoLock(unsigned long min_sz, unsigned long tmo)
9191
* Flushes buffered events.
9292
*
9393
* Parameters
94-
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
94+
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. JTAG destinations only.
9595
* tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
9696
*
9797
* Return value
@@ -288,8 +288,7 @@ int SEGGER_RTT_ConfigUpBuffer(unsigned BufferIndex, const char* sName, void* pBu
288288
*/
289289
int SEGGER_RTT_ConfigDownBuffer(unsigned BufferIndex, const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags)
290290
{
291-
esp_apptrace_down_buffer_config(s_down_buf, sizeof(s_down_buf));
292-
return 0;
291+
return esp_apptrace_down_buffer_config(ESP_APPTRACE_DEST_SYSVIEW, s_down_buf, sizeof(s_down_buf));
293292
}
294293

295294
/*************************** Init hook ****************************

components/app_trace/test_apps/main/test_trace.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ const static char *TAG = "esp_apptrace_test";
6767
#define ESP_APPTRACE_TEST_LOGO( format, ... ) ESP_APPTRACE_TEST_LOG_LEVEL(E, ESP_LOG_NONE, format, ##__VA_ARGS__)
6868

6969
#if CONFIG_APPTRACE_SV_ENABLE == 0
70-
#define ESP_APPTRACE_TEST_WRITE(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, ESP_APPTRACE_TMO_INFINITE)
71-
#define ESP_APPTRACE_TEST_WRITE_FROM_ISR(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 0UL)
72-
#define ESP_APPTRACE_TEST_WRITE_NOWAIT(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 0)
70+
#define ESP_APPTRACE_TEST_WRITE(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_JTAG, _b_, _s_, ESP_APPTRACE_TMO_INFINITE)
71+
#define ESP_APPTRACE_TEST_WRITE_FROM_ISR(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_JTAG, _b_, _s_, 0UL)
72+
#define ESP_APPTRACE_TEST_WRITE_NOWAIT(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_JTAG, _b_, _s_, 0)
7373

7474
typedef struct {
7575
uint8_t *buf;
@@ -625,7 +625,7 @@ static int esp_logtrace_printf(const char *fmt, ...)
625625

626626
va_start(ap, fmt);
627627

628-
int ret = esp_apptrace_vprintf_to(ESP_APPTRACE_DEST_TRAX, ESP_APPTRACE_TMO_INFINITE, fmt, ap);
628+
int ret = esp_apptrace_vprintf_to(ESP_APPTRACE_DEST_JTAG, ESP_APPTRACE_TMO_INFINITE, fmt, ap);
629629

630630
va_end(ap);
631631

@@ -657,7 +657,7 @@ static void esp_logtrace_task(void *p)
657657
break;
658658
}
659659
}
660-
esp_err_t ret = esp_apptrace_flush(ESP_APPTRACE_DEST_TRAX, ESP_APPTRACE_TMO_INFINITE);
660+
esp_err_t ret = esp_apptrace_flush(ESP_APPTRACE_DEST_JTAG, ESP_APPTRACE_TMO_INFINITE);
661661
if (ret != ESP_OK) {
662662
ESP_APPTRACE_TEST_LOGE("Failed to flush printf buf (%d)!", ret);
663663
}

components/esp_system/panic.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ void esp_panic_handler(panic_info_t *info)
361361
#if CONFIG_APPTRACE_SV_ENABLE
362362
SEGGER_RTT_ESP_FlushNoLock(CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH, APPTRACE_ONPANIC_HOST_FLUSH_TMO);
363363
#else
364-
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_TRAX, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
364+
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_JTAG, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
365365
APPTRACE_ONPANIC_HOST_FLUSH_TMO);
366366
#endif
367367
#endif
@@ -401,7 +401,7 @@ void esp_panic_handler(panic_info_t *info)
401401
#if CONFIG_APPTRACE_SV_ENABLE
402402
SEGGER_RTT_ESP_FlushNoLock(CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH, APPTRACE_ONPANIC_HOST_FLUSH_TMO);
403403
#else
404-
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_TRAX, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
404+
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_JTAG, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
405405
APPTRACE_ONPANIC_HOST_FLUSH_TMO);
406406
#endif
407407
#endif // CONFIG_APPTRACE_ENABLE
@@ -472,7 +472,7 @@ void __attribute__((noreturn, no_sanitize_undefined)) panic_abort(const char *de
472472
#if CONFIG_APPTRACE_SV_ENABLE
473473
SEGGER_RTT_ESP_FlushNoLock(CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH, APPTRACE_ONPANIC_HOST_FLUSH_TMO);
474474
#else
475-
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_TRAX, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
475+
esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_JTAG, CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH,
476476
APPTRACE_ONPANIC_HOST_FLUSH_TMO);
477477
#endif
478478
#endif

docs/en/api-guides/app_trace.rst

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ In general, users should decide what type of data should be transferred in every
7878
#include "esp_app_trace.h"
7979
...
8080
char buf[] = "Hello World!";
81-
esp_err_t res = esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, buf, strlen(buf), ESP_APPTRACE_TMO_INFINITE);
81+
esp_err_t res = esp_apptrace_write(ESP_APPTRACE_DEST_JTAG, buf, strlen(buf), ESP_APPTRACE_TMO_INFINITE);
8282
if (res != ESP_OK) {
8383
ESP_LOGE(TAG, "Failed to write data to host!");
8484
return res;
@@ -91,13 +91,13 @@ In general, users should decide what type of data should be transferred in every
9191
#include "esp_app_trace.h"
9292
...
9393
int number = 10;
94-
char *ptr = (char *)esp_apptrace_buffer_get(ESP_APPTRACE_DEST_TRAX, 32, 100/*tmo in us*/);
94+
char *ptr = (char *)esp_apptrace_buffer_get(ESP_APPTRACE_DEST_JTAG, 32, 100/*tmo in us*/);
9595
if (ptr == NULL) {
9696
ESP_LOGE(TAG, "Failed to get buffer!");
9797
return ESP_FAIL;
9898
}
9999
sprintf(ptr, "Here is the number %d", number);
100-
esp_err_t res = esp_apptrace_buffer_put(ESP_APPTRACE_DEST_TRAX, ptr, 100/*tmo in us*/);
100+
esp_err_t res = esp_apptrace_buffer_put(ESP_APPTRACE_DEST_JTAG, ptr, 100/*tmo in us*/);
101101
if (res != ESP_OK) {
102102
/* in case of error host tracing tool (e.g., OpenOCD) will report incomplete user buffer */
103103
ESP_LOGE(TAG, "Failed to put buffer!");
@@ -115,9 +115,13 @@ In general, users should decide what type of data should be transferred in every
115115
size_t sz = sizeof(buf);
116116
117117
/* config down buffer */
118-
esp_apptrace_down_buffer_config(down_buf, sizeof(down_buf));
118+
esp_err_t res = esp_apptrace_down_buffer_config(ESP_APPTRACE_DEST_JTAG, down_buf, sizeof(down_buf));
119+
if (res != ESP_OK) {
120+
ESP_LOGE(TAG, "Failed to config down buffer!");
121+
return res;
122+
}
119123
/* check for incoming data and read them if any */
120-
esp_err_t res = esp_apptrace_read(ESP_APPTRACE_DEST_TRAX, buf, &sz, 0/*do not wait*/);
124+
res = esp_apptrace_read(ESP_APPTRACE_DEST_JTAG, buf, &sz, 0/*do not wait*/);
121125
if (res != ESP_OK) {
122126
ESP_LOGE(TAG, "Failed to read data from host!");
123127
return res;
@@ -138,8 +142,12 @@ In general, users should decide what type of data should be transferred in every
138142
size_t sz = 32;
139143
140144
/* config down buffer */
141-
esp_apptrace_down_buffer_config(down_buf, sizeof(down_buf));
142-
char *ptr = (char *)esp_apptrace_down_buffer_get(ESP_APPTRACE_DEST_TRAX, &sz, 100/*tmo in us*/);
145+
esp_err_t res = esp_apptrace_down_buffer_config(ESP_APPTRACE_DEST_JTAG, down_buf, sizeof(down_buf));
146+
if (res != ESP_OK) {
147+
ESP_LOGE(TAG, "Failed to config down buffer!");
148+
return res;
149+
}
150+
char *ptr = (char *)esp_apptrace_down_buffer_get(ESP_APPTRACE_DEST_JTAG, &sz, 100/*tmo in us*/);
143151
if (ptr == NULL) {
144152
ESP_LOGE(TAG, "Failed to get buffer!");
145153
return ESP_FAIL;
@@ -150,7 +158,7 @@ In general, users should decide what type of data should be transferred in every
150158
} else {
151159
printf("No data");
152160
}
153-
esp_err_t res = esp_apptrace_down_buffer_put(ESP_APPTRACE_DEST_TRAX, ptr, 100/*tmo in us*/);
161+
res = esp_apptrace_down_buffer_put(ESP_APPTRACE_DEST_JTAG, ptr, 100/*tmo in us*/);
154162
if (res != ESP_OK) {
155163
/* in case of error host tracing tool (e.g., OpenOCD) will report incomplete user buffer */
156164
ESP_LOGE(TAG, "Failed to put buffer!");

0 commit comments

Comments
 (0)