mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-10 04:43:33 +00:00
This commit add to GDBstup:
1. Multicore suupor 2. Stepping 3. Console output 4. Update example + readme 5. Jumps
This commit is contained in:
@@ -14,26 +14,41 @@
|
||||
#include "esp_log.h"
|
||||
|
||||
|
||||
int call_count = 0;
|
||||
|
||||
static const char *TAG = "gdbstub_example";
|
||||
esp_log_level_t log_level = ESP_LOG_DEBUG;
|
||||
esp_log_level_t update_log_level = ESP_LOG_DEBUG;
|
||||
|
||||
int call_counts[4] = {0};
|
||||
void task4test(void *param)
|
||||
{
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
int task_num = (int)param;
|
||||
volatile int core = xPortGetCoreID();
|
||||
while (1) {
|
||||
core = xPortGetCoreID();
|
||||
printf("CPU %i: To enter GDB please press \"Ctrl+C\"\n", core);
|
||||
ESP_LOGD(TAG, "DEBUG mode enabled. Task %i, Core ID %i, Call - %i.", task_num, core, call_counts[task_num]);
|
||||
ESP_LOGI(TAG, "INFO mode enabled. Task %i, Core ID %i, Call - %i.", task_num, core, call_counts[task_num]);
|
||||
ESP_LOGW(TAG, "WARN mode enabled. Task %i, Core ID %i, Call - %i.", task_num, core, call_counts[task_num]++);
|
||||
|
||||
asm("test_point1: nop;");
|
||||
for (int i = 0 ; i < 10000000; i++) {
|
||||
asm("test_point2: nop;");
|
||||
asm(" nop;");
|
||||
asm(" nop;");
|
||||
asm(" nop;");
|
||||
}
|
||||
log_level = update_log_level;
|
||||
esp_log_level_set(TAG, log_level);
|
||||
}
|
||||
}
|
||||
|
||||
void app_main(void)
|
||||
{
|
||||
printf("Hello GDB example!\n");
|
||||
|
||||
call_count = 0;
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
|
||||
for (;;) {
|
||||
ESP_LOGD(TAG, "DEBUG mode enabled. Call - %i. To enter GDB please press \"Ctrl+C\"", call_count);
|
||||
ESP_LOGI(TAG, "INFO mode enabled. Call - %i. To enter GDB please press \"Ctrl+C\"", call_count);
|
||||
ESP_LOGW(TAG, "WARN mode enabled. Call - %i. To enter GDB please press \"Ctrl+C\"", call_count++);
|
||||
if (update_log_level != log_level) {
|
||||
log_level = update_log_level;
|
||||
esp_log_level_set(TAG, log_level);
|
||||
}
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
xTaskCreatePinnedToCore(task4test, "task 3", 4096, (void *)0, 10, NULL, 0);
|
||||
xTaskCreatePinnedToCore(task4test, "task 4", 4096, (void *)1, 10, NULL, 1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user