库函数版本
主要使用函数 vTaskGetRunTimeStats() PDF手册第177页
函 数 vTaskGetRunTimeStats() 是 一 个 很 实 用 的 函 数 , 要 使 用 此 函 数 的 话 宏 configGENERATE_RUN_TIME_STATS 和configUSE_STATS_FORMATTING_FUNCTIONS 必须 都为 1。如果宏 configGENERATE_RUN_TIME_STATS 为 1 的话还需要实现一下几个宏定义:
● portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(),此宏用来初始化一个外设来
提供时间统计功能所需的时基,一般是定时器/计数器。这个时基的分辨率一定要比 FreeRTOS
的系统时钟高,一般这个时基的时钟精度比系统时钟的高 10~20 倍就可以了。
1.● portGET_RUN_TIME_COUNTER_VALUE()或者
2.portALT_GET_RUN_TIME_COUNTER_VALUE(Time),这两个宏实现其中一个就行
了,这两个宏用于提供当前的时基的时间值。
函数原型如下: void vTaskGetRunTimeStats( char *pcWriteBuffer )
参数: pcWriteBuffer: 保存任务时间信息的存储区。存储区要足够大来保存任务时间信息。
3.configGENERATE_RUN_TIME_STATS和configUSE_STATS_FORMATTING_FUNCTIONS在这里配置为1
4.定义这个函数用来初始化一个外设来提供时间统计功能所需的时基
定义FreeRTOSRunTimeTicks,记得在.h文件中声明
3.宏定义再加上portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()和portGET_RUN_TIME_COUNTER_VALUE()
4.定义一个数组来存放任务时间信息
5.记得初始化按键
6.中断里面将这个时基++;
7.成功,就是要按下按键好久之后才会输出(发现是没有进行按键初始化)
/分割线**********************/
HAL库版本