FreeRTOS调试用函数学习笔记

本文介绍了FreeRTOS中几个常用的任务管理函数,包括获取任务堆栈最大使用深度、获取任务状态及系统节拍次数等。这些函数对于调试实时操作系统中的任务行为非常有用。

1.获取任务堆栈最大使用深度

      UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );

      任务的堆栈空间会随着任务执行以及中断处理而增长或缩小。该函数可以返回任务启动后的最小剩余堆栈空间。换句话说,可以间接估算出一个任务最多需要多少堆栈空间。在文件FreeRTOSConfig.h中,宏INCLUDE_uxTaskGetStackHighWaterMark 必须设置成1,此函数才有效。比如一个32为架构处理器,返回值为1表示有4字节堆栈空间没有使用过。如果返回值为0,则任务很可能已经发生了堆栈溢出。

2.获取任务状态

      eTaskState eTaskGetState( TaskHandle_txTask );

      返回一个枚举类型的任务状态值。在文件FreeRTOSConfig.h中,宏INCLUDE_eTaskGetState必须设置为1,此函数才有效。

3.获取系统节拍次数

      volatile TickType_t xTaskGetTickCount(void );

      这个函数不能在ISR中调用。在ISR中用xTaskGetTickCountFromISR(),原型为volatileTickType_t xTaskGetTickCountFromISR( void )。

      返回从vTaskStartScheduler函数调用后的系统时钟节拍次数。

参考FreeRTOS系列第12篇---FreeRTOS任务应用函数_include_xtaskgetidletaskhandle-优快云博客文章浏览阅读4.2w次,点赞36次,收藏127次。任务应用函数是一组辅助类函数,一般用于调试信息输出、获取任务句柄、获取任务状态、操作任务标签值等等。1.获取任务系统状态1.1函数描述 UBaseType_t uxTaskGetSystemState( TaskStatus_t * constpxTaskStatusArray, const_include_xtaskgetidletaskhandlehttps://blog.youkuaiyun.com/zhzht19861011/article/details/50498173

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值