FreeRTOS 各task的运行时间以及CPU占用情况统计

 #include 
 #include 
 #include 
 #include "freertos/FreeRTOS.h"
 #include "freertos/task.h"
 #include "driver/uart.h"
#include 

 
static void vTaskWork(void *pvParameters)
{
    // uint8_t *pcWriteBuffer = malloc(500);
	char *pcWriteBuffer = malloc(500);
    uint8_t  running_times = 0;
    while(1)
	{
	// ​        uint8_t  running_times = 0;
	running_times++;
	if (running_times % 100 == 0)
{
// running_times++;
printf("=======================================================\r\n");
printf("Task_name--------status------priority------------stack---seq_num\r\n");
vTaskList((char *)pcWriteBuffer);
printf("%s\r\n", pcWriteBuffer);
printf("\rTask_name-----------run_times---------------use_rates\r\n");
vTaskGetRunTimeStats((char *)pcWriteBuffer);
printf("%s\r\n", pcWriteBuffer);
}
vTaskDelay(20);
    }
	free(pcWriteBuffer);
}

 void app_main()
 {  //ok...
 printf("00000000heap:%d,minimum_free_heap:%d\n",esp_get_free_heap_size(),esp_get_minimum_free_heap_size());
	xTaskCreate(vTaskWork,"vTaskWork", 1024, NULL, 1, NULL);
 }

你可能感兴趣的:(物联网)