arm任务管理.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arm任务管理

函数名称 OSInit 所属文件 OS_CORE.C 函数原型 void OSInit(void) 功能描述 初始化μC/OS-Ⅱ,无函数参数和返回值 特殊说明 必须在调用OSStart()函数之前调用OSInit(),而只有在调用OSStart()函数之后,μC/OS-Ⅱ才真正开始运行多任务 OSInit函数 函数名称 OSStart 所属文件 OS_CORE.C 函数原型 void OSStart(void) 功能描述 启动μC/OS-II的多任务环境,无函数参数和返回值 特殊说明 在调用OSStart( )之前必须先调用OSInit ( )。在用户程序中OSStart( )只能被调用一次,第二次调用OSStart( )将不执行任何操作 OSStart函数 任务管理 核心函数 任务管理函数 任务管理函数 任务管理函数 功能 配置开关常量 调用者 OSTaskChangePrio() 任务级变更 OS_TASK_CHANGE_PRIO_EN 任务 OSTaskCreate() 任务建立 OS_TASK_CREATE_EN 任务、启动代码 OSTaskCreateExt() 任务建立 OS_TASK_CREATE_EXT_EN 任务、启动代码 OSTaskDelReq() 请求删除任务 OS_TASK_DEL_REQ_EN 任务 OSTaskQuery() 任务信息的获取 OS_TASK_QUERY_EN 中断、任务 OSTaskResume() 任务恢复 OS_TASK_RESUME_EN 任务 OSTaskStkChk() 堆栈检验 OS_TASK_STK_CHK_EN 任务 OSTaskSuspend() 任务挂起 OS_TASK_SUSPEND_EN 任务 OSTaskDel() 删除任务 OS_TASK_DEL_EN 任务 函数名称 OSTaskCreate 所属文件 OS_TASK.C 函数原型 INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio) 功能描述 建立一个新任务。既可以在多任务环境启动之前,也可以在正在运行的任务中创建任务 函数参数 task :指向任务代码的指针(函数指针) pdata :传递给任务的参数(一个变量指针) ptos :指向任务堆栈栈顶的指针 prio :任务的优先级 函数返回值 OS_NO_ERR:函数调用成功 OS_PRIO_EXIST:具有该优先级的任务已经存在 OS_PRIO_INVALID:参数指定的优先级大于OS_LOWEST_PRIO OS_NO_MORE_TCB:系统中没有OS_TCB可以分配给任务了 特殊说明 任务堆栈必须声明为OS_STK类型。注意:在中断处理程序中不能建立任务。在任务中必须调用μC/OS提供的下述过程之一:延时等待、任务挂起、等待事件发生(等待信号量,消息邮箱、消息队列),以便其它任务也能获得CPU的使用权 建立任务——OSTaskCreate() 任务栈 堆栈 ---- LIFO访问原则组织的连续存储器。 任务堆栈----用于保存任务函数中所有寄存器、变量和数据结构的堆栈。 任务堆栈在 uC/OS-II 中的应用: 1、任务堆栈是任务的三大组成部分之一。 2、保存 CPU 寄存器现场。 3、保存本 Task 的私有数据。 ----- 在创建任务的同时,任务堆栈即被创建。 举例: #define MyTaskStkSize 64 OS_STK MyTaskStk[ MyTaskStkSize ] //在 OS_CPU.H中定义 OS_STK … … // typedef INT16U OS_STK INT8U OSTaskCreate( void (*task) (void *pd), //指向任务的指针 void * pdata, //传递给任务的参数 MyTaskStk[ MyTaskStkSize -1 ] //任务堆栈栈顶的指针 INT8U prio //任务的优先级别 ) 任务栈的创建 存在两种堆栈形式 递增堆栈 ---- 进栈操作向上(大地址)方向发展。 递减堆栈 ---- 进栈操作向下(小地址)方向发展。 OSTaskCreate( … … MyTaskStk[StkSize - 1], … … ) OSTaskCreate( … … MyTaskStk[ 0 ], … … ) 备注:OS_CPU.H

文档评论(0)

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

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

1亿VIP精品文档

相关文档