dsp数字信号处理课程设计报告 ucos—ii多任务设计

dsp数字信号处理课程设计报告 ucos—ii多任务设计

ID:6684403

大小:53.50 KB

页数:13页

时间:2018-01-22

dsp数字信号处理课程设计报告 ucos—ii多任务设计_第1页
dsp数字信号处理课程设计报告 ucos—ii多任务设计_第2页
dsp数字信号处理课程设计报告 ucos—ii多任务设计_第3页
dsp数字信号处理课程设计报告 ucos—ii多任务设计_第4页
dsp数字信号处理课程设计报告 ucos—ii多任务设计_第5页
资源描述:

《dsp数字信号处理课程设计报告 ucos—ii多任务设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《DSP技术及应用》课程设计选题名称:uCOS—II多任务设计系(院):计算机工程学院专业:计算机科学与技术(嵌入式系统软件设计)班级:计算机1073姓名:学号:指导教师:学年学期:2009~2010学年第2学期2010年6月12日摘要:uCOS-II中最多可以支持64个任务,分别对应优先级0~63,其中0为最高优先级,63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等

2、。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,该任务负责统计当前cpu的利用率。uC/OS-II采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/os-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。关键词:uCOS-II;函数调用;可剥夺型;多任务内核;任务优先级;抢占式调度目录1.多任务概述12.就

3、绪表(ReadyList)13.任务状态43.1睡眠态43.2等待状态53.3中断服务态55.任务调度分析66.uCOSII的初始化7总结8DSP技术及应用课程设计报告1.多任务概述   多任务是操作系统的一项基本功能.在DSP系统上引入操作系统之后,我们可以非常方便的使用它的多任务功能.多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身

4、也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。内核本身对CPU的占用时间一般在2到5个百分点之间。uCOSII有一个精巧的内核调度算法,实时内核精小,执行效率高,算法巧妙,代码空间很少。2.就绪表(ReadyList)   uCOSII采用内存映射的方式来实现READY队列的加入,查找,删除功能,效率非常高。但是也因此只能支持64个任务,每个任务都有自己的优先级,不能和其他任务优先级相同。   每个任务的就绪

5、态标志都放入就绪表中的,就绪表中有两个变OSRdyGrp和OSRdyTbl[]。在OSRdyGrp中,任务按优先级分组,8个任务为一组。OSRdyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表OSRdyTbl[]中的相应元素的相应位也置位。就绪表OSRdyTbl[]数组的大小取决于OS_LOWEST_PRIO。  为确定下次该哪个优先级的任务运行了,内核调度器总OS_LOWEST_PRIO在就绪表中相应字节的相应位置1。OSRdyGrp和OSRdyTbl[]的关系见图3.3,是按以下

6、规则给出的:   当OSRdyTbl[0]中的任何一位是1时,OSRdyGrp的第0位置1,   当OSRdyTbl[1]中的任何一位是1时,OSRdyGrp的第1位置1,   当OSRdyTbl[2]中的任何一位是1时,OSRdyGrp的第2位置1,   当OSRdyTbl[3]中的任何一位是1时,OSRdyGrp的第3位置1,   当OSRdyTbl[4]中的任何一位是1时,OSRdyGrp的第4位置1,8DSP技术及应用课程设计报告   当OSRdyTbl[5]中的任何一位是1时,OSRdyGrp的第5位置1,   

7、当OSRdyTbl[6]中的任何一位是1时,OSRdyGrp的第6位置1,   当OSRdyTbl[7]中的任何一位是1时,OSRdyGrp的第7位置1,程序清单3.5中的代码用于将任务放入就绪表。Prio是任务的优先级。程序清单L3.5使任务进入就绪态/*这行代码功能是找到列,把列上的值置为1不妨假设prio的值为13,即优先级为13.prio>>3右移3位后值为1,可以查表T3.1找出OSMapTbl[1]的值为00000010.再用00000010和OSRdyGrp进行异或运算*/OSRdyGrp

8、=OSMapTbl

9、[prio>>3];/* */OSRdyTbl[prio>>3]

10、=OSMapTbl[prio&0x07];  任务优先级的低三位用于确定任务在总就绪表OSRdyTbl[]中的所在位。接下去的三位用于确定是在OSRdyTbl[]数组的第几个元素。OSMapTbl[]是在ROM中的屏蔽字,用于限制OSRd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。