嵌入式实时操作系统μCOS原理与实践2.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:28 大小:2.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式实时操作系统μCOS原理与实践2.ppt

嵌入式实时操作系统μCOS原理与实践2.ppt

预览

免费试读已结束,剩余 18 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式实时操作系统μC/OS原理与实践第二章任务管理2.1任务管理数据结构2.1任务管理数据结构2.1.2空闲链表和就绪链表2.1.3任务表2.1.3任务优先级指针表2.1.4任务堆栈2.1.4任务堆栈任务堆栈演示2.1.5任务就绪表和就绪组2.1.5任务就绪表和就绪组-设置任务就绪2.1.5任务就绪表和就绪组-获取就绪任务中的最高优先级2.2任务控制块初始化2.3操作系统初始化创建一个任务,任务从无到有。任务创建函数分两种,一种是基本的创建函数OSTaskCreate,另一种是扩展的任务创建函数OSTaskCreateExt。着重讲解OSTaskCreate。表2.20创建任务OS_TaskCreat。表2.21堆栈初始化函数OSTaskStkInit的一个版本2.4任务的删除2.4任务的删除2.4任务的删除-请求删除2.4任务的挂起和恢复2.4任务的挂起和恢复流程2.7任务的调度和多任务的启动就绪的任务进入获得CPU才能运行。任务切换函数就是执行这样的操作系统服务功能:如果正在运行的任务不是优先级最高的或即将被阻塞,需选择一个优先级最高的就绪的任务运行。该过程中非常重要的一点是,要保留正在运行任务运行的上下文,也就是运行环境,如CPU寄存器的值,以便在任务重新开始运行之前能恢复CPU寄存器的值。当然还要将将要运行的任务的上下文恢复到CPU寄存器。OS_SchedNew这个函数被其他μC/OS-II系统服务调用,用来确定最高优先级的就绪任务。该函数运行的结果就是给全局变量‘OSPrioHighRdy’赋值。显然,OSPrioHighRdy是最高优先级任务的优先级。表2.31OS_SchedNew代码分析OS_Sched的分析表2.32OS_Sched代码分析2.OS_TASK_SW的分析2.OS_TASK_SW的分析(1)80x86CPU2.8特殊任务2.8特殊任务习题1.任务控制块是一个什么样的数据结构?请用C语言定义一个任务控制块数组,并对其进行初始化。2.论述任务控制块初始化过程中构建任务控制块空闲链表的过程。3.就绪表和就绪组的用途是什么?论述他们之间的关系。4.编写代码实现将优先级为13,23,33的任务就绪,然后取消优先级为25的任务的就绪标志。5.使用C语言创建一个任务堆栈,将这个堆栈赋值给一个任务控制块。6.论述任务堆栈的增长方向对入栈出栈操作的影响。7.解析任务调度的过程8.任务创建函数OSTaskCreate和OSTaskCreateEXT有哪些区别?9.任务是如何挂起和恢复的?10.为什么要请求删除任务而不直接删除?请求删除任务函数有哪些功能,流程是什么?11.论述统计任务是如何进行CPU利用率统计的。