zoukankan      html  css  js  c++  java
  • FreeRTOS任务运行时间信息统计

    相关宏的设置

    configGENERATE_RUN_TIME_STATS   //使能
    portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()    //配置一个高精度定时器/计数器提供时基
    portGET_RUN_TIME_COUNTER_VALUE()    //读取时间值

    实验举例

    char RunTimeInfo[400];      //保存任务运行时间信息
    
    //FreeRTOS时间统计所用的节拍计数器
    volatile unsigned long long FreeRTOSRunTimeTicks;
    
    //初始化TIM3使其为FreeRTOS的时间统计提供时基
    void ConfigureTimeForRunTimeStats(void)
    {
        //定时器3初始化,定时器时钟为72M,分频系数为72-1,所以定时器3的频率
        //为72M/72=1M,自动重装载为50-1,那么定时器周期就是50us
        FreeRTOSRunTimeTicks=0;
        TIM3_Int_Init(50-1,72-1);   //初始化TIM3
    }
    
    void TIM3_IRQHandler(void)
    {
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断
        {
            FreeRTOSRunTimeTicks++;
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
    }
    
    void RunTimeStats_task(void *pvParameters)
    {
        while(1)
        {
            {
                memset(RunTimeInfo,0,400);              //信息缓冲区清零
                vTaskGetRunTimeStats(RunTimeInfo);      //获取任务运行时间信息
                printf("任务名			运行时间	运行所占百分比
    ");
                printf("%s
    ",RunTimeInfo);
            }
            vTaskDelay(2000);
        }
    }

    实验现象
    1

  • 相关阅读:
    孤儿进程与僵尸进程
    python with as的用法
    工作目录与os.getcwd()
    内置模块
    迭代器,生成器
    表达式,语句
    字符流
    字节流
    File
    触发器的操作
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709480.html
Copyright © 2011-2022 走看看