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

  • 相关阅读:
    Mvc请求管道中的19个事件
    asp.net 验证正则表达式
    Asp.net MVC进入请求管道的过程
    MVC(二)
    Aspect Oriented Programming (AOP)
    在C#中??和?分别是什么意思?
    MVC(一)
    ASP.NET 管道事件与HttpModule, HttpHandler简单理解
    Entity Framework && Lambda
    扩展类和扩展方法
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709480.html
Copyright © 2011-2022 走看看