网站大量收购闲置独家精品文档,联系QQ:2885784924

第2章 任务讲解.pptx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 任务 μC/OS-II的初始化和任务的启动 μC/OS-II的初始化和任务的启动 void main (void) { OSInit(); /* 初始化uC/OS-II */ ……….. . 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务; ……….. . OSStart(); /* 开始多任务调度!OSStart()永远不会返回 */ } ? μC/OS-II的初始化做什么? 初始化μC/OS-II所有的变量和数据结构。 OSInit()建立空闲任务OSTaskIdle()和统计任务OSTaskStat() 任务控制块链 任务就绪表 还初始化了4个空数据结构缓冲区 OSTCBFreeList OSEventFreeList OSQFreeList OSMemFreeList 任务控制块缓冲区的数目在OS_CFG.H中定义: # define OS_MAX-TASKS 5 多任务启动做什么? 找出用户建立的任务中优先级最高的任务 启动这个最高优先级任务的执行 图3-17 调用OSStart()以后的数据结构 第2章 任务 μC/OS-II的初始化和任务的启动 μC/OS-II任务 μC/OS-II任务的组成 TCB 任务堆栈 任务代码 void main (void) { OSInit(); ……….. . 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务; ……….. . OSStart(); } ? void Task (void *pdata) { for (;;) { ………………….. /* 用户代码 */ } } 任务的组成之间的关联 TCB(Task Control Block): 用来记录任务的堆栈信息、当前任务、任务的优先级别等一些与任务管理有关的属性的数据结构 任务控制块链表 已用的控制块链表 空闲的控制块链表 TCB结构 typedef struct os_tcb { OS_STK *OSTCBStkPtr; #if OS_TASK_CREATE_EXT_EN 0 void *OSTCBExtPtr; OS_STK *OSTCBStkBottom; INT32U OSTCBStkSize; INT16U OSTCBOpt; INT16U OSTCBId; #endif struct os_tcb *OSTCBNext; struct os_tcb *OSTCBPrev; #if ((OS_Q_EN 0) (OS_MAX_QS 0)) || (OS_MBOX_EN 0)    || (OS_SEM_EN 0) || (OS_MUTEX_EN 0) OS_EVENT *OSTCBEventPtr; #endif #if ((OS_Q_EN 0) (OS_MAX_QS 0)) || (OS_MBOX_EN 0) void *OSTCBMsg; #endif #if (OS_VERSION = 251) (OS_FLAG_EN 0) (OS_MAX_FLAGS 0) #if OS_TASK_DEL_EN 0 OS_FLAG_NODE *OSTCBFlagNode; #endif OS_FLAGS OSTCBFlagsRdy; #endif INT16U OSTCBDly; (7) INT8U OSTCBStat; INT8U OSTCBPrio; INT8U OSTCBX; INT8U OSTCBY; INT8U OSTCBBitX; INT8U

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档