嵌入式系统综合设计实时嵌入式操作系统ucos的实时任务设计与分析.docx
《嵌入式系统综合设计实时嵌入式操作系统ucos的实时任务设计与分析.docx》由会员分享,可在线阅读,更多相关《嵌入式系统综合设计实时嵌入式操作系统ucos的实时任务设计与分析.docx(36页珍藏版)》请在冰点文库上搜索。
嵌入式系统综合设计实时嵌入式操作系统ucos的实时任务设计与分析
武汉工程大学
计算机科学与工程学院
综合设计报告
设计名称:
嵌入式系统综合设计
设计题目:
实时嵌入式操作系统ucos的实时任务设计与分析
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师(职称):
课题工作时间:
9月26日至10月15日
说明:
1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
成绩评定表
学生姓名:
学号:
班级:
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
平时表现
10
10
按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
10
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规范要求。
5
能对整个设计过程进行全面的总结,得出有价值的结论或结果。
5
参考文献数量在3篇以上,格式符合要求,在正文中正确引用。
答辩情况
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分
补充说明:
指导教师:
刘军(签字)
日期:
2010年10月15日
答辩记录表
学生姓名:
学号:
班级:
答辩地点:
答辩内容记录:
答辩成绩
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
答辩小组成员(签字):
2010年10月15日
指导教师评语
指导教师:
刘军(签字)
日期:
2010年10月15日
一、综合设计目的、条件、任务和内容要求:
《嵌入式系统》是计算机和信息专业的重要专业课。
嵌入式系统中实时系统应用是这门课程的重点内容之一。
本课题针对实时系统的应用需求,要求学生在一个实用的实时嵌入式操作系统ucos中,设计多个实时任务,并给出每个实时任务的实际时序分析。
通过本课题可以提高学生对嵌入式系统和实时操作系统环境中实时任务应用的分析和解决问题的能力。
本次综合设计的实验系统由以下各部分组成:
1.µCOS-II嵌入式实时操作系统。
这个操作系统是开放源代码的;
2.LambdaTOOL。
一个开发嵌入式软件的集成开发环境;
3.BSP。
针对特定嵌入式硬件平台的板级支持包,提供板级初始化代码和一些基本的驱动程序;
4.实验用例程序。
基于特定的嵌入式操作系统(在本实验系统中是µCOS-II)的应用程序代码。
本次综合设计的实验要求:
(1)理解实时嵌入式操作系统ucos的基本功能及用法。
(2)熟悉实时嵌入式操作系统ucos中任务调度的分析与设计方法,掌握任务时序分析方法。
(3)通过这次设计,搞清如何利用实时操作系统完成一个嵌入式系统应用的设计方法。
本次综合设计的实验任务:
1、ucos嵌入式仿真开发环境的建立
2、分析说明ucos嵌入式操作系统的任务调度原理
3、在仿真开发环境中,设计并实现实时任务调度功能
4、对调度的实时任务进行时序测试,并给出分析说明
5、书写课程设计报告
指导教师签字:
刘军
2010年10月15日
二、进度安排:
第1周(9.26-10.07):
学生熟悉课题的任务和要求,查阅相关文献和资料,并做好嵌入式实时任务模型设计以及核心功能模块设计
第1周(10.8-10.09):
程序编码、调试
第2周(10.11-10.14):
程序编码、调试和测试,书写报告
第2周(10.15):
答辩、检查、验收、递交设计报告
三、应收集资料及主要参考文献:
嵌入式实时操作系统UC/OS-II程序设计思想和方法
高级程序设计语言参考手册
实时系统、体系结构方面参考书籍
主要参考文献:
[1]JeanJ.Labrosse著,邵贝贝译.嵌入式实时操作系统UC/OS-II(第2版)[M].北京:
北京航空航天大学出版社,2007.9.
[2]任哲.嵌入式实时操作系统UC/OS-II原理及应用(第2版)[M].北京:
北京航空航天大学出版社,2009.10.
[3]周航慈.基于嵌入式实时操作系统的程序设计技术[M].北京:
北京航空航天大学出版社,2008.9.
[4]王田苗.嵌入式系统设计与实例开发——基于ARM微处理器与uC/OS-II实时操作系统(第3版)[M].北京:
清华大学出版社,2008.1.
[5]钱晨,徐荣华,王钦若.基于Linux操作系统的设备驱动程序开发[J].微计算机信息.2004,9.
摘要
嵌入式系统中实时系统应用是这门课程的重点内容之一。
本课题针对实时系统的应用需求,要求学生在一个实用的实时嵌入式操作系统ucos中,设计多个实时任务,并给出每个实时任务的实际时序分析。
通过本课题可以提高学生对嵌入式系统和实时操作系统环境中实时任务应用的分析和解决问题的能力。
µCOS-II嵌入式实时操作系统,这个操作系统是开放源代码的;LambdaTOOL。
一个开发嵌入式软件的集成开发环境;BSP。
针对特定嵌入式硬件平台的板级支持包,提供板级初始化代码和一些基本的驱动程序;实验用例程序。
基于特定的嵌入式操作系统的应用程序代码。
µC/OS-II是完全可抢占型的实时内核,即µC/OS-II总是运行就绪条件下优先级最高的任务。
采用这种机制时,系统把处理机分配给优先级最高的进程,使之执行。
一旦出现了另一个优先级更高的进程时,进程调度程序剥夺当前任务的执行,将处理机分配给高优先级任务。
而在相同优先级的多个任务之间,采用时间片轮转调度机制。
采用这种机制时,当一个任务到达时,它被排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有结束,则再等待属于自己的时间片的到来,直到任务完成。
关键词:
µC/OS-II;实时内核;多任务调度;实时操作系统
Abstract
Inembeddedsystemistheapplicationofreal-timesystemsisoneofthekeycontentsofthecourse.Thistopicforreal-timesystemapplicationrequirements,studentsinapracticalreal-timeoperatingsystem,thedesignucosreal-timetasks,andmorethantheactualeachreal-timetaskstime-seriesanalysis.Throughthistopiccanimprovestudentsontheembeddedsystemandreal-timeoperatingsystemenvironmentreal-timetasksapplicationanalysisandproblemsolvingability.
uC/OS-IIembeddedreal-timeoperatingsystem,theoperatingsystemisopensource,LambdaTOOL.Anembeddedsoftwaredevelopmentofintegrateddevelopmentenvironment,BSP.Inparticularembeddedhardwareplatform,theboardsupportpackageoffersboardinitializationcodeandsomebasicdriver,Testcasesprogram.Basedonthespecificembeddedoperatingsystemtheapplicationcode.
uC/OS-IIiscompletelycanoccupythereal-timekerneltype,i.e.muC/OS-IIisalwaysrunningreadyconditionofthehighestprioritytask.Usingthismechanism,theprocessorallocationsystemtothehighestpriority,theexecutionofprocess.Oncethereappearedanotherpriorityhigherprocess,processschedulerdeprivedofthecurrenttaskexecution,willgivehigher-prioritytaskallocationprocessor.Andinthesameprioritybetweenmultipletasks,usingtimetime-slicedmechanism.Usingthismechanism,whenataskarrived,itwasinthequeue,waitingbehindrotationassignedtotheirtimeofarrivalintimeifnotend,thenwaitforowntime,untilthetask.
Keywords:
μC/OS-II;real-timekernel;multi-taskscheduling;Real-timeoperatingsystem
摘要
嵌入式系统中实时系统应用是这门课程的重点内容之一。
本课题针对实时系统的应用需求,要求学生在一个实用的实时嵌入式操作系统ucos中,设计多个实时任务,并给出每个实时任务的实际时序分析。
通过本课题可以提高学生对嵌入式系统和实时操作系统环境中实时任务应用的分析和解决问题的能力。
µCOS-II嵌入式实时操作系统,这个操作系统是开放源代码的;LambdaTOOL。
一个开发嵌入式软件的集成开发环境;BSP。
针对特定嵌入式硬件平台的板级支持包,提供板级初始化代码和一些基本的驱动程序;实验用例程序。
基于特定的嵌入式操作系统的应用程序代码。
µC/OS-II是完全可抢占型的实时内核,即µC/OS-II总是运行就绪条件下优先级最高的任务。
采用这种机制时,系统把处理机分配给优先级最高的进程,使之执行。
一旦出现了另一个优先级更高的进程时,进程调度程序剥夺当前任务的执行,将处理机分配给高优先级任务。
而在相同优先级的多个任务之间,采用时间片轮转调度机制。
采用这种机制时,当一个任务到达时,它被排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有结束,则再等待属于自己的时间片的到来,直到任务完成。
关键词:
µC/OS-II;实时内核;多任务调度;实时操作系统
Abstract
Applicationsoftwaresystemconstitutethesetofprograms,theindependent,interactiveprogramunit,calledthetaskinitsimplementation.AsingleCPU,multi-taskmechanismcreatedafalseimpressionofmultipletaskssimultaneously.Infact,thesystemisbasedonamulti-taskschedulingalgorithmintothekerneltoperformthesetasks.Althoughthemainpurposeofschedulingistoallocateprocessor,butinadifferentscheduleusedintheOSistotallydifferent.Schedulingintheimplementationoftheschedulingalgorithmusedmaybedifferent.
μC/OS-IIisafullypreemptivereal-timekernel,theμC/OS-IIalwaysrunsunderthehighestpriorityreadytask.Withthismechanism,thesystemprocessorassignedtoprocessthehighestpriority,sothatimplementation.Onceanotherhigherpriorityprocess,theprocessofdeprivationofthecurrenttaskschedulerimplementation,theprocessorassignedtothehighprioritytask.Whileatthesamepriorityamongmultipletasks,usingthetimeslicerobinschedulingmechanism.Withthismechanism,whenataskarrives,itisrankedintherotationbehindthequeue,waitingforthetimesliceallocatedtothearrivaloftheirown,andifthereisnoendintimeslice,thenwaittheirowntimesliceofthearrivalofuntilthetaskiscompleted.
Keywords:
μC/OS-II;real-timekernel;multi-taskscheduling
第一章课题背景
1.1课题背景
嵌入式系统中实时系统应用是这门课程的重点内容之一。
在一个实用的实时嵌入式操作系统ucos中,设计多个实时任务,并给出每个实时任务的实际时序分析。
通过本课题可以提高自己对嵌入式系统和实时操作系统环境中实时任务应用的分析和解决问题的能力、可以了解嵌入式实时操作系统µC_OS-II的内核机制和运行原理。
1.2设计目的和要求
1.2.1目的和条件
《嵌入式系统》是计算机和信息专业的重要专业课。
嵌入式系统中实时系统应用是这门课程的重点内容之一。
本课题针对实时系统的应用需求,要求学生在一个实用的实时嵌入式操作系统ucos中,设计多个实时任务,并给出每个实时任务的实际时序分析。
通过本课题可以提高学生对嵌入式系统和实时操作系统环境中实时任务应用的分析和解决问题的能力。
本次综合设计的实验系统由以下各部分组成:
1.µCOS-II嵌入式实时操作系统。
这个操作系统是开放源代码的;
2.LambdaTOOL。
一个开发嵌入式软件的集成开发环境;
3.BSP。
针对特定嵌入式硬件平台的板级支持包,提供板级初始化代码和一些基本的驱动程序;
4.实验用例程序。
基于特定的嵌入式操作系统(在本实验系统中是µCOS-II)的应用程序代码。
1.2.2设计要求
(1)理解实时嵌入式操作系统ucos的基本功能及用法。
(2)熟悉实时嵌入式操作系统ucos中任务调度的分析与设计方法,掌握任务时序分析方法。
(3)通过这次设计,搞清如何利用实时操作系统完成一个嵌入式系统应用的设计方法。
1.2.3设计任务
1、ucos嵌入式仿真开发环境的建立。
2、分析说明ucos嵌入式操作系统的任务调度原理。
3、在仿真开发环境中,设计并实现实时任务调度功能。
4、对调度的实时任务进行时序测试,并给出分析说明。
5、书写课程设计报告。
1.3实验系统的构成
本实验系统由以下各部分组成:
1.µCOS-II嵌入式实时操作系统。
这个操作系统是开放源代码的;
2.LambdaTOOL。
一个开发嵌入式软件的集成开发环境;
3.BSP。
针对特定嵌入式硬件平台的板级支持包,提供板级初始化代码和一些基本的驱动程序;
4.实验用例程序。
基于特定的嵌入式操作系统(在本实验系统中是µCOS-II)的应用程序代码。
1.4操作系统简介
一、µC/OS-II是一个抢占式实时多任务内核。
µC/OS-II是用ANSI的C语言编写的,包含一小部分汇编语言代码,使之可以提供给不同架构的微处理器使用。
至今,从8位到64位,µC/OS-II已经在40多种不同架构的微处理器上使用。
世界上已经有数千人在各个领域中使用µC/OS,这些领域包括:
照相机行业、航空业、医疗器械、网络设备、自动提款机以及工业机器人等。
二、µC/OS-II的特点
1、源代码:
µC/OS-II全部以源代码的方式提供给使用者(约5500行)。
该源码清晰易读,结构协调,且注解详尽,组织有序;
2、可移植(portable):
µC/OS-II的源代码绝大部分是用移植性很强的ANSIC写的,与微处理器硬件相关的部分是用汇编语言写的。
µC/OS-II可以移植到许许多多不同的微处理器上,条件是:
该微处理器具有堆栈指针,具有CPU内部寄存器入栈、出栈指令,使用的C编译器必须支持内嵌汇编,或者该C语言可扩展和可链接汇编模块,使得关中断和开中断能在C语言程序中实现;
3、可固化(ROMable):
µC/OS-II是为嵌入式应用而设计的,意味着只要具备合适的系列软件工具(C编译、汇编、链接以及下载/固化)就可以将µC/OS-II嵌入到产品中作为产品的一部分;
4、可裁减(scalable):
可以只使用µC/OS-II中应用程序需要的系统服务。
可裁减性是靠条件编译实现的,只需要在用户的应用程序中定义那些µC/OS-II中的功能应用程序需要的部分就可以了;
5、可抢占性(preemptive):
µC/OS-II是完全可抢占型的实时内核,即µC/OS-II总是运行就绪条件下优先级最高的任务;
6、多任务:
µC/OS-II可以管理64个任务。
赋予每个任务的优先级必须是不相同的,这就是说µC/OS-II不支持时间片轮转调度法(该调度法适用于调度优先级平等的任务);
7、可确定性:
绝大多数µC/OS-II的函数调用和服务的执行时间具有可确定性。
也就是说用户能知道µC/OS-II的函数调用与服务执行了多长时间。
进而可以说,除了函数OSTimeTick()和某些事件标志服务,µC/OS-II系统服务的执行时间不依赖于用户应用程序任务数目的多少;
8、任务栈:
每个任务都有自己单独的栈。
µC/OS-II允许每个任务有不同的栈空间,以便降低应用程序对RAM的需求;
9、系统服务:
µC/OS-II提供许多系统服务,比如信号量、互斥信号量、事件标志、消息邮箱、消息队列、时间管理等等;
10、中断管理:
中断可以使正在执行的任务暂时挂起。
如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可以达255层;
11、稳定性和可靠性:
µC/OS-II的每一种功能、每一个函数以及每一行代码都经过了考验和测试,具有足够的安全性与稳定性,能用于与人性命攸关、安全性条件极为苛刻的系统中。
第二章设计简介
2.1创建项目
一新建项目:
想让我们的实验运行起来,需要建立3个项目:
两个“静态库项目”和一个“操作系统无关项目”。
具体过程可参考手册。
二、设置完成之后,该实验所需的所有项目都建立好了,不过ucos和uc_bsp的src目录里面都是空的。
这时候需要在系统的资源管理器中复制相关的源文件,然后粘贴到相应项目的src目录中就可以了。
在uc_bsp项目的src目录中粘贴BSP(BoardSupportPackage,板级支持包)相关的文件(包括driver和syscall子目录);在ucos项目的src目录中粘贴µC/OS-II的内核源文件。
在你所建立的操作系统无关项目appTest中,已经存在了一个应用源代码文件init.c,请把这个文件删除,然后把相应的实验用例程序源文件粘贴到src目录下。
三、项目配置
uc_bsp和ucos这两个静态库项目的目的是为了生成两个库文件:
libuc_bsp.a(板级支持包库)和libucos.a(µC/OS-II内核库),而appTest是我们最终的实验项目,它需要调用到libuc_bsp.a和libucos.a的一些功能。
因此这3个项目的构建顺序应该是:
先使用静态库项目生成应用所需的库文件到指定路径中,然后用appTest项目生成最终应用。
四、构建项目
到此为止,你已经将项目配置得差不多了,再稍加一些东西,就可以运行一个应用项目了。
下一个步骤就是构建项目生成可运行的程序了(这个过程包含了编译、链接等操作)。
注意:
ucos和uc_bsp项目必须先于appTest构建,以生成相关的库文件,这些库文件是可以供所有的实验应用项目使用的。
因此当你替换appTest中的应用源代码文件以构建不同的实验应用时,不需要重新构建ucos和uc_bsp项目,只需对appTest重新进行构建。
五、配置虚拟机和目标机代理
本实验系统所用的目标运行平台是一个运行在桌面系统中的PC虚拟机,为了启动这个虚拟机,需要首先制作它的“启动盘”。
接下里配置好虚拟机和创建目标机代理,就可一进行编译、连接及调试了。
2