μCOS-II在基于51微控制器上的移植研究设计.doc
《μCOS-II在基于51微控制器上的移植研究设计.doc》由会员分享,可在线阅读,更多相关《μCOS-II在基于51微控制器上的移植研究设计.doc(39页珍藏版)》请在沃文网上搜索。
1、 C/OS-II在基于51微控制器上的移植研究 摘 要:C/OS-II以其结构清晰、性能稳定、源码公开等特点,受到广大嵌入式开发人员的青睐,已作为嵌入式实时操作系统被移植到许多微处理器上,在国防、航空航天、交通、能源、工业控制、通信以及人们日常生活等各个领域得到了广泛应用。本文首先介绍了嵌入式实时操作系统C/OS-II的内核结构,运行原理;然后分析和探讨了C/OS-II在51单片机上的移植方案,主要是以下4个文件的修改:汇编文件OS_CPU_A.ASM;处理器相关C文件OS_CPU.H和OS_CPU.C.C;系统配置文件OS_CFG.H。通过实现代码详细描述了此移植过程中的关键部分,并提出了移
2、植中的注意事项;最后给出了移植仿真测试结果。仿真工作是在KeilCx51编译器环境下完成的。从学习操作系统角度看,通过C/OS-II在51上的移植,可以掌握C/OS-II的运行原理、移植和测试的实质内容。另外,开发人员也可使用C/OS-II提供的各种服务,在51平台上进行更高层次的应用开发。关键词:C/OS-II;嵌入式实时操作系统;51单片机;移植;测试Study on Transplantation of C/OS-II Based On 51 Micro-controller Abstract:C/OS-II is favored by most of the embedded deve
3、lopers in that it has a few of virtues, such as clear structure, stable function and so on. It has been transplanted to many microprocessors as the embedded real operation system. It has been widely applied in the fields of defense, aerospace , transportation, energy, industrial control, communicati
4、ons etc. This thesis introduces the structure of C/OS-II firstly and discusses the project of transplantation of C/OS-II for 51 microprocessor, which involved the following four key documents: compilation OS_CPU_A.ASM; processor associated C file OS_CPU.H and OS_CPU.CC; system configuration files OS
5、_CFG. H. Essential technology of transplantation of C/OS-II for 51 microprocessor was elaborated by realization code, and putting forward the questions and precautions in transplant process. Finally,I verified the success of transplantation through an experiment. The simulation work is completed in
6、Keil Cx51 compiler environment. In the view of learning operation system, we can master the substantial content of the C / OS-II transplantion and test through transplantation of C / OS-II for 51.Key words: MicroC/OS-II;embedded real-time operating system;51 microprocessor;Transplantation;cross-comp
7、iler;test.目 录第一章 绪论11.1 背景和选题依据11.2 国内外的研究现状及发展趋势11.3 本文的研究内容1第二章 C/OS-II简介32.1 C/OS-II的产生背景32.2 C/OS-II的特点32.3 C/OS-II内核结构42.3.1 宏OS_ENTER_CRITICAL( )和OS_EXIT_CRITICAL( )52.3.2 任务52.3.3 调度器上锁、开锁92.3.4 C/OS-II中的中断与时钟节拍92.3.5 C/OS-II初始化与启动10第三章 Keil Cx51基础知识123.1 Cx51程序设计基础123.1.1 标识符与关键字123.1.2 基本语法
8、及语句123.2 函数133.2.1 函数定义与调用143.2.2 函数的递归调用与再入函数15第四章 C/OS-II移植基础知识174.1 C/OS-II源文件移植174.2 硬件平台构成与编译器的选择194.3 C/OS-II移植的一般性问题20第五章 C/OS-II在51单片机上的移植215.1 头文件处理215.2 修改OS_CPU.H文件215.3 修改OS_CPU_C.C文件215.3 OS_CPU_AASM文件235.3.1 汇编文件头部定义235.3.2 修改OSStartHighRdy( )函数255.3.3 修改OSCtxSW( )函数255.3.4 OSIntCtxSW(
9、 )函数265.3.5 OSTickISR( )函数265.4 定时器初始值设置27第六章 实验及其结果分析286.1 实验的条件和指导思想286.2 实验的过程和结果286.3 对实验结果的分析和讨论29参考文献30致 谢31III第一章 绪论1.1 背景和选题依据随着各种应用电子系统的复杂化和系统实时性需求的提高,并伴随应用软件朝着系统化方向发展的加速,在16位/32位单片机中广泛使用了嵌入式实时操作系统。然而实际使用中却存在着大量8位单片机,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行,通过设置一个或多个中断来处理异步事件。这种系统对于简单的应用是可以的,但
10、对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。本课题研究嵌入式实时操作系统C/OS-II在51微控制器上的移植,对C/OS-II的移植具有普遍的指导意义,可以为51平台更高层次的开发和拓展打下了基础。从学习操作系统角度看,通过C/OS-II在VRS51上的移植,可以掌握移植和测试C/OS-II的实质内容,很容易将其移植到其它的CPU平台上。1.2 国内外的研究现状及发展趋势目前比较常见的嵌入式操作系统有WindRiver公司的VxWorks、pSOS,微软公司的Windows CE,QNX公司的QNX OS,在手持设备嵌入式操作系统中三分天下的P
11、lam、WinCE、EPOS等,但是使用这些商业操作系统是需要高昂的费用。面对这种情况,一些组织和个人也开发了一些免费的、源码开放的操作系统,在互联网发布,其中比较有名的是CLinux和C/OS-II。C/OS-II具有足够的稳定性和安全性,而且C/OS-II的构思巧妙,结构简洁精练,可读性很强,具备了实时操作系统的全部功能。C/OS-II是用C语言和汇编语言编写的。其中绝大部分代码都是用C语言编写的,只有极少部分与处理器密切相关的代码是用汇编语言编写的,所以用户只要做很少的工作就可以把它移植到各类8位、16位和32位嵌入式处理器上。随着硬件技术、应用需求和开发需求的变化,嵌入操作系统也需要支
12、持面向对象和可重用等技术。这也要求未来嵌入式操作系统的开发要注意以下几个方面:通过自动化配置提高系统移植的效率,即尽量将操作系统的移植工作让开发工具自动完成;系统性能向信息化、网络化、智能化发展;面向构件的体系结构,即将操作系统的功能模块构件化,建立标准统一的网络通信协议,并在嵌入式操作系统构件化基础之上实现应用程序的智能化。1.3 本文的研究内容根据收集到的嵌入式实时操作系统C/OS-II一些相关资料,使用Keil Vision2开发工具对C/OS-II进行移植,直到仿真通过为止。基本内容: 1、了解嵌入式实时操作系统C/OS-II2、C/OS-II内核分析与系统分析3、Keil Cx51基
13、础知识4、C/OS-II移植的基础知识5、在51系列单片机上移植C/OS-II可行性分析:1、C/OS-II源码开放2、Keil Cx51编译器和51控制器满足C/OS-II运行要求:处理器的C编译器能产生可重入型代码。用C语言就可以打开和关闭中断。处理器支持中断,并且能产生定时中断(频率通常在10至100Hz之间)。处理器能支持容纳一定量的数据存储硬件堆栈(可能是几千字节)。处理器有将堆栈指针和其他CPU寄存器的内容读出并存储到堆栈或内存中的指令。第二章 C/OS-II简介2.1 C/OS-II的产生背景C/OS-II是由Jean J.Labrosse于1992年编写的一个嵌入式多任务实时操
14、作系统。最早这个系统叫做C/OS,后来经过近10年的应用和修改,在1999年Jean J.Labrosse推出了C/OS-II。C/OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。C/OS-II包括任务调度、时间管理、内存管理、资源管理(信号量、邮箱、消息队列)四大部分,没有文件系统、网络接口、输入输出界面。它的移植只与4个文件相关:汇编文件(OS_CPU_A.ASM)、处理器相关C文件(OS_CPU.H、OS_CPU_C.C)和配置文件(OS_CFG.H)。有64个优先级,系统占用8个,用户可创建56个任务,不支持时间片轮转。它的基本思路就是 “近似地每时每刻总是让优先
15、级最高的就绪任务处于运行状态” 。为了保证这一点,它在调用系统API函数、中断结束、定时中断结束时总是执行调度算法。原作者通过事先计算好数据,简化了运算量,通过精心设计就绪表结构,使得延时可预知。任务的切换是通过模拟一次中断实现的。由于C/OS-II的构思巧妙,结构简洁精练,可读性很强,同时又具备了实时操作系统的全部功能,所以虽然它只是一个内核,但非常适合初次接触嵌入式实时操作系统的学生、嵌入式系统开发人员和爱好者学习,并且通过适当地扩展之后,还可以应用到实际系统中去。2.2 C/OS-II的特点可移植性:C/OS-II是用C语言和汇编语言编写的。其中绝大部分代码都是用C语言编写的,只有极少部
16、分和处理器密切相关的代码是用汇编语言编写的,所以用户只要做很少的工作就可以把它移植到各类8位、16位和32位嵌入式处理器上。C/OS-II已在超过40种不同架构上的微处理器上运行。C/OS-II已经在世界范围内得到广泛应用,包括很多领域, 如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。可固化:C/OS-II是为嵌入式应用而设计的,这就意味着,只要具备合适的系列软件工具(C编译、会变、链接及下载/固化),实际上就可以将C/OS-II嵌入到产品中作为产品的一部分。可剪裁:可以只使用C/OS-II中应用程序需要的系统服务。也就是说,某产品可以只使用很少几个C/OS-II调用,而列
17、一个产品则可能使用了几乎所有C/OS-II的功能,这样可以减少产品中C/OS-II所需的存储器空间(RAM和ROM)。可剪裁性是靠条件编译实现的,只要在用户的程序中(用#define constants语句)定义哪些C/OS-II中的功能是应用程序需要的就可以了。可剥夺性:C/OS-II是完全可剥夺型的实时内核,即C/OS-II总是运行就绪条件下优先级最高的任务。大多数商业内核也是可剥夺型的,C/OS-II在性能上与它们类似。可确定性:绝大多数C/OS-II的函数调用和服务的执行时间具有可确定性。也就是说,用户总是能知道C/OS-II的函数调用与服务执行了多长时间。进而可以说,除了函数OSTi
18、meTick()和某些事件标志服务,C/OS-II系统服务的执行时间不依赖于用户应用程序任务数目的多少。多任务:C/OS-II可以管理64个任务;然而建议用户保留8个给C/OS-II。留给用户的应用程序最多可有56个任务。赋予每个任务的优先级必须是不同的,这意味着C/OS-II不支持时间片轮转调度法。该调度法适用于调度优先级平等的任务。任务栈:每个任务都有自己单独的栈。C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。使用C/OS-II的栈空间校验函数,可以确定每个任务到底需要多少栈空间。系统服务:C/OS-II提供很多系统服务,例如信号量、互斥型信号量、事件标志、消息
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COS II 基于 51 控制器 移植 研究 设计
