当前位置:网站首页>1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析
1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析
2022-07-05 06:50:00 【grey_csdn】
全部学习汇总: GreyZhang/g_FreeRTOS: learning notes about FreeRTOS. (github.com)
前面刚刚分析完了任务的挂起操作,接下来分析一下任务是否是挂起状态的查询接口实现。一般,这种查询类的接口实现上总是简单一些。
接口也是需要配置一个宏定义使能之后才能够生效,这个跟前面的任务挂起接口实现是相似的。接下来,首先得确保传入的任务句柄是有效的。
如果任务句柄有效,那么就需要查看任务是否在挂起任务链表之中。如果不在,那么查询就直接得到结果,这个任务并没有挂起。否则,需要进一步判断。这也就说明,在FreeRTOS之中这个挂起的任务链表可能用到了多个功能之中,而这导致了链表的重用。自然,有些时候把链表增加一些类别能够让处理更加简单,但是类似的处理就无法合并了。因此,这样实现下来的内核应该更加轻巧。
如果任务在挂起任务链表只中,挂起的原因可能也是因为事件导致的挂起。如此,判断一下是否是事件导致的挂起即可,如果不是,那么这个任务在挂起任务链表中的原因就是挂起任务的操作。如此,任务就是挂起状态。
相比之前的挂起操作,这个判断任务是否挂起的操作的确是简单了一些。主要的原因其实之前也分析过,类似的属性查询一般不会改变各种状态因此不会触发任务的调度。而修改类的接口则不一样了,可能会涉及到优先级等关键的属性,随时可能触发任务调度,因此复杂度会高一些。
边栏推荐
- SD_CMD_SEND_SHIFT_REGISTER
- [MySQL 8.0 does not support capitalization of table names - corresponding scheme]
- ROS2——ROS2对比ROS1(二)
- 7. Oracle table structure
- Vant Weapp SwipeCell設置多個按鈕
- testing framework
- ROS2——功能包(六)
- UTC, GPS time and Tai
- Mutual transformation between two-dimensional array and sparse array (sparse matrix)
- Vscode configures the typera editor for MD
猜你喜欢
Vant weave swipecell sets multiple buttons
Ros2 - common command line (IV)
并发编程 — 如何中断/停止一个运行中的线程?
逻辑结构与物理结构
'mongoexport 'is not an internal or external command, nor is it a runnable program or batch file.
【软件测试】04 -- 软件测试与软件开发
Some classic recursion problems
Marvell 88E1515 PHY loopback模式测试
【软件测试】02 -- 软件缺陷管理
Adg5412fbruz-rl7 applies dual power analog switch and multiplexer IC
随机推荐
解读最早的草图-图像翻译工作SketchyGAN
H5 embedded app adapts to dark mode
ROS2——topic话题(八)
【软件测试】03 -- 软件测试概述
Xavier CPU & GPU 高负载功耗测试
Rehabilitation type force deduction brush question notes D2
Vant weave swipecell sets multiple buttons
[nvidia] CUDA_ VISIBLE_ DEVICES
ROS2——Service服务(九)
6-3 find the table length of the linked table
Ros2 - install ros2 (III)
The problem of Chinese garbled code in the vscode output box can be solved once for life
inux摄像头(mipi接口)简要说明
2022年中纪实 -- 一个普通人的经历
PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)
ROS2——常用命令行(四)
How to correctly ask questions in CSDN Q & A
2022 winter vacation training game 5
程序中的负数存储及类型转换
In C language, int a= 'R'