mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 04:59:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Hello World Example
 | |
| 
 | |
|    This example code is in the Public Domain (or CC0 licensed, at your option.)
 | |
| 
 | |
|    Unless required by applicable law or agreed to in writing, this
 | |
|    software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 | |
|    CONDITIONS OF ANY KIND, either express or implied.
 | |
| */
 | |
| #include <stdio.h>
 | |
| #include "sdkconfig.h"
 | |
| #include "freertos/FreeRTOS.h"
 | |
| #include "freertos/task.h"
 | |
| #include "esp_system.h"
 | |
| #include "esp_log.h"
 | |
| 
 | |
| 
 | |
| 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");
 | |
| 
 | |
|     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);
 | |
| }
 | 
