μC/OS-Ⅲ系统的任务挂起表
2024-09-27 10:09:20
在μC/OS-Ⅲ系统中任务挂起表与任务就续表十分相似,只不过任务就续表记录就绪状态的任务,任务挂起表记录等待某个内核对象的任务。任务挂起表是一个类型为OS_PEND_LIST的数据结构,包含三个成员:1、NbrEntries,等待表中表项数目;2、TailPtr,指向等待表中最后一个任务(优先级最低的任务);3、HeadPtr,指向等待表中第一个任务(优先级最高的任务)。
任务挂起表并不直接指向任务的控制块OS_TCB,而是指向一个OS_PEND_DATA类型的中间变量。该类型变量在任务被放入任务挂起表时动态地分配到该任务的堆栈空间中。该类型数据结构包含8个成员:
1、PrevPtr:指向任务挂起表中前一个等待相同内核对象的更高优先级或优先级相同的OS_PEND_DATA类型变量。
2、NextPtr:指向任务挂起表中后一个等待相同内核对象的优先级相同或更低先级的OS_PEND_DATA类型变量。
3、TCBPtr:指向等待该内核对象的任务的控制块OS_TCB。
4、PendObjPtr:指向任务正在等待的内核对象。(μC/OS-Ⅲ中信号量、互斥型信号量、事件标志组、消息队列等内核对象均为OS_PEND_OBJ类型)
5、RdyObjPtr:在任务等待多个内核对象的情况下,指向已经准备就绪的内核对象。
6、RdyMsgPtr:在任务等待多个内核对象的情况下,指向通过OSQPost()函数发布的信息。
7、RdyMsgSize:记录OSQPost()函数发布的信息长度。
8、RdyTS:时间戳,记录内核对象被释放(Post)的时刻。
最新文章
- Tomcat部署web项目,虚拟目录,上下文(Context),WEB-INF,web.xml,servlet,404
- Codeforces Round #347 (Div. 2)
- nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路
- Codeforces 633B A Trivial Problem
- Oracle中的自增-序列-SEQUENCE
- Agile.Net 组件式开发平台 - 开发环境部署
- UIButton set touch handler in code
- SEMAT[软件工程方法和理论 Software Engineering Method and Theory]
- 最长回文子串 | 勇幸|Thinking
- 九度OJ 1006 ZOJ
- html查看器android
- JAVA_SE基础——49.多态的应用
- 爬取拉勾网招聘信息并使用xlwt存入Excel
- 微信小程序 canvas导出图片模糊
- C++的学习心得
- CSS3之box-sizing属性
- python 函数进阶与闭包
- Cuba获取属性文件中的配置
- Oracle数据类型与.NET中的对应关系
- 7.final关键字.md