说明:因上传文章时不能复制上传图片,所以本文只有文字版实验报告提供实验思路参考,需要完整版和实验截图的同学可以下载完整实验报告资源获取
一、实验目的
- 理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程;
- 掌握µC/OS-II中任务管理的基本方法(创建、启动、挂起、解挂任务);
- 熟练使用µC/OS-II任务管理的基本系统调用。
二、实验环境
WindowsXP , LambdaPRO3
三、实验内容及实验原理
1.实验设计
为了展现任务的各种基本状态及其变迁过程,本实验设计了Task0、Task1两个任务:任务Task0不断地挂起自己,再被任务Task1解挂,两个任务不断地切换执行。通过本实验,读者可以清晰地了解到任务在各个时刻的状态以及状态变迁的原因。
2. 运行流程
3. 实验原理
一个任务通常是一个无限的循环 ,由于任务的执行是由操作系统内核调度的,因此任务是绝不会返回的,其返回参数必须定义成void。在μC/OS-Ⅱ中,当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就会被抢占,高优先级任务会立刻得到CPU的控制权(在系统允许调度和任务切换的前提下)。μC/OS-Ⅱ可以管理多达64个任务,但目前版本的μC/OS-Ⅱ有两个任务已经被系统占用了(即空闲任务和统计任务)。必须给每个任务赋以不同的优先级,任务的优先级号就是任务编号(ID),优先级可以从0到OS_LOWEST_PR10-2。优先级号越低,任务的优先级越高。μC/OS-Ⅱ总是运行进入就绪态的优先级最高的任务。
四、实验结果及其分析
在LambdaTOOL调试器的控制下运行构建好的程序后,将看到在μC/OS-Ⅱ内核的调度管理下,两个应用任务不断切换执行的情形:
五、心得体会与建议
通过本实验,理解了任务管理的基本原理,了解了任务的各个基本状态及其变迁过程;掌握了µC/OS-II中任务管理的基本方法(创建、启动、挂起、解挂任务),以及能够熟练使用µC/OS-II任务管理的基本系统调用。