mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	 66fb5a29bb
			
		
	
	66fb5a29bb
	
	
	
		
			
			Apply the pre-commit hook whitespace fixes to all files in the repo. (Line endings, blank lines at end of file, trailing whitespace)
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  Test FreeRTOS support for core dump.
 | |
| */
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include "soc/cpu.h"
 | |
| #include "freertos/FreeRTOS.h"
 | |
| #include "freertos/task.h"
 | |
| #include "unity.h"
 | |
| #include "sdkconfig.h"
 | |
| 
 | |
| #define TEST_MAX_TASKS_NUM	32
 | |
| 
 | |
| /* simple test to check that in normal conditions uxTaskGetSnapshotAll does not generate exception */
 | |
| TEST_CASE("Tasks snapshot", "[freertos]")
 | |
| {
 | |
|     TaskSnapshot_t tasks[TEST_MAX_TASKS_NUM];
 | |
|     UBaseType_t tcb_sz;
 | |
| #ifndef CONFIG_FREERTOS_UNICORE
 | |
|     int other_core_id = xPortGetCoreID() == 0 ? 1 : 0;
 | |
| #endif
 | |
| 
 | |
|     // uxTaskGetSnapshotAll is supposed to be called when all tasks on both CPUs are
 | |
|     // inactive and can not alter FreeRTOS internal tasks lists, e.g. from panic handler
 | |
|     unsigned state = portENTER_CRITICAL_NESTED();
 | |
| #ifndef CONFIG_FREERTOS_UNICORE
 | |
|     esp_cpu_stall(other_core_id);
 | |
| #endif
 | |
|     UBaseType_t task_num = uxTaskGetSnapshotAll(tasks, TEST_MAX_TASKS_NUM, &tcb_sz);
 | |
| #ifndef CONFIG_FREERTOS_UNICORE
 | |
|     esp_cpu_unstall(other_core_id);
 | |
| #endif
 | |
|     portEXIT_CRITICAL_NESTED(state);
 | |
| 
 | |
|     printf("Dumped %d tasks. TCB size %d\n", task_num, tcb_sz);
 | |
|     TEST_ASSERT_NOT_EQUAL(0, task_num);
 | |
|     TEST_ASSERT_NOT_EQUAL(0, tcb_sz);
 | |
| }
 |