好文档 - 专业文书写作范文服务资料分享网站

南京航空航天大学自动化学院嵌入式实验一任务的基本管理实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

南京航空航天大学 研究生实验报告

项目名称: 任务的基本管理

学生姓名: 班级学号:

专业名称: 导航,制导与控制

日期:2016年5月20号

1

实验1 任务的基本管理

一、 实验目的及要求

目的:

1、理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 2、掌握μC/OS-II中任务管理的基本方法(创建、启动、挂起、解挂任务); 3、熟练使用μC/OS-II任务管理的基本系统调用。 要求:

一、运行实验指导书上的程序,理解任务管理的基本原理。 二、修改程序:

1. 将Task0与Task1的优先级交换,运行结果是怎样的?分析结果。

2. 在原有程序的Task0中,增加延时功能,并调整Task0与Task1的延时时间,会对运行结果有什么影响并分析。

二、 实验内容及原理

1、μC/OS-Ⅱ中的任务描述

一个任务通常是一个无限的循环 ,由于任务的执行是由操作系统内核调度的,因此任务是绝不会返回的,其返回参数必须定义成void。在μC/OS-Ⅱ中,当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就会被抢占,高优先级任务会立刻得到CPU的控制权(在系统允许调度和任务切换的前提下)。μC/OS-Ⅱ可以管理多达64个任务,但目前版本的μC/OS-Ⅱ有两个任务已经被系统占用了(即空闲任务和统计任务)。必须给每个任务赋以不同的优先级,任务的优先级号就是任务编号(ID),优先级可以从0到OS_LOWEST_PR10-2。优先级号越低,任务的优先级越高。μC/OS-Ⅱ总是运行进入就绪态的优先级最高的任务。 2、操作系统的配置

操作系统配置的目的在于根据应用的需要,对操作系统的功能和规模进行设置,以便优化对系统存储空间的使用。配置的方法为修改uC_OS-II源代码目录中的OS_CFG.h文件:

#define OS_MAX_EVENTS 10 /*最多可以有10个事件*/ #define OS_MAX_FLAGS 5 /*最多可以有5个事件标志*/ #define OS_MAX_MEM_PART 5 /*最多可以划分5个内存块*/ #define OS_MAX_QS 2 /*最多可以使用2个队列*/ #define OS_MAX_TASKS 3 /*最多可以创建3个任务*/ #define OS_LOWEST_PRIO 14 /*任务优先级不可以大于14*/ #define OS_TASK_IDLE_STK_SIZE 1024 /*空闲任务堆栈大小*/ #define OS_TASK_STAT_EN 1 /*是否允许使用统计任务*/ #define OS_TASK_STAT_STK_SIZE 1024 /*统计任务堆栈大小*/

#define OS_FLAG_EN 0 /*是否允许使用事件标志功能*/

2

#define OS_FLAG_WAIT_CLR_EN 1 /*是否允许等待清除事件标志*/ #define OS_FLAG_ACCEPT_EN 1 /*是否允许使用OSFlagAccept()*/ #define OS_FLAG_DEL_EN 1 /*是否允许使用OSFlagDel()*/ #define OS_FLAG_QUERY_EN 1 /*是否允许使用OSFlagQuery()*/ #define OS_MBOX_EN 0 /*是否允许使用邮箱功能*/

#define OS_MBOX_ACCEPT_EN 1 /*是否允许使用 OSMboxAccept() */ #define OS_MBOX_DEL_EN 1 /*是否允许使用 OSMboxDel()*/ #define OS_MBOX_POST_EN 1 #define OS_MBOX_POST_OPT_EN 1 #define OS_MBOX_QUERY_EN 1 #define OS_MEM_EN 0 #define OS_MEM_QUERY_EN 1 #define OS_MUTEX_EN 0 #define OS_MUTEX_ACCEPT_EN 1 #define OS_MUTEX_DEL_EN 1 #define OS_MUTEX_QUERY_EN 1 #define OS_Q_EN 0 #define OS_Q_ACCEPT_EN 1 #define OS_Q_DEL_EN 1 #define OS_Q_FLUSH_EN 1 #define OS_Q_POST_EN 1 #define OS_Q_POST_FRONT_EN 1 #define OS_Q_POST_OPT_EN 1 #define OS_Q_QUERY_EN 1 #define OS_SEM_EN 0 #define OS_SEM_ACCEPT_EN 1 #define OS_SEM_DEL_EN 1 #define OS_SEM_QUERY_EN 1 #define OS_TASK_CHANGE_PRIO_EN 0 #define OS_TASK_CREATE_EN 1 #define OS_TASK_CREATE_EXT_EN 1 #define OS_TASK_DEL_EN 1 #define OS_TASK_SUSPEND_EN 1 OSTaskResume()*/

#define OS_TASK_QUERY_EN 1 #define OS_TIME_DLY_HMSM_EN 0

3

/*是否允许使用OSMboxPost()*/ /*是否允许使用OSMboxPostOpt() */ /*是否允许使用OSMboxQuery()*/ /*是否允许使用内存管理的功能*/ /*是否允许使用OSMemQuery()*/ /*是否允许使用互斥信号量的功能*/ /*是否允许使用OSMutexAccept()*/ /*是否允许使用OSMutexDel()*/ /*是否允许使用OSMutexQuery()*/ /*是否允许使用队列功能*/ /*是否允许使用OSQAccept()*/ /*是否允许使用OSQDel()*/ /*是否允许使用 OSQFlush()*/ /*是否允许使用 OSQPost()*/ /*是否允许使用OSQPostFront()*/ /*是否允许使用OSQPostOpt()*/ /*是否允许使用OSQQuery()*/ /*是否允许使用信号量功能*/ /*是否允许使用OSSemAccept()*/ /*是否允许使用 OSSemDel() */ /*是否允许使用 OSSemQuery()*/ /*是否允许使用 OSTaskChangePrio()*/ /*是否允许使用OSTaskCreate()*/ /*是否允许使用OSTaskCreateExt()*/ /*是否允许使用OSTaskDel()*/ /*是否允许使用OSTaskSuspend() and /*是否允许使用OSTaskQuery()*/ /*是否允许使用OSTimeDlyHMSM()*/

南京航空航天大学自动化学院嵌入式实验一任务的基本管理实验报告

南京航空航天大学研究生实验报告项目名称:任务的基本管理学生姓名:班级学号:专业名称:导航,制导与控制日期:2016年5月20号
推荐度:
点击下载文档文档为doc格式
5mnhq7xe8w8njyy26yqz6tzp834d3b018rx
领取福利

微信扫码领取福利

微信扫码分享