嵌入式实时操作系统μC_OS-Ⅱ在s3c44box上的移植.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:5 大小:288KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式实时操作系统μC_OS-Ⅱ在s3c44box上的移植.pdf

嵌入式实时操作系统μC_OS-Ⅱ在s3c44box上的移植.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据嵌入式实时操作系统ffc/os一Ⅱ在s44box上的移植3c彭天玲uc/os一Ⅱ的特点王江晴”System.c/os一ⅡonEmbeddedReal—Time嵌入式操作系统可提高系统的可靠性和开发效PlantofOperation3c44boxWang率,尤为重要的是它可以充分发挥32位CPU的多任务潜能.pC/OS一Ⅱ是一个可裁减、源代码公开的嵌入式实时操作系统,它内核精巧,支持多任务管理,支持占先式任务调度,可移植性强[1].对弘c/os一Ⅱ的移植具有重要的理论意义和实际应用价值.1uc/os一Ⅱ的内核采用占先式调度机制,满足实时系统的要求,它包括任务管理和调度、时间管理、内存管理以及任务间的通信和同步等系统服务功能[z].uc/os一Ⅱ的内核主要是为任务提供系统服务.任务可以请求内核的某项服务,内核作出相应的服务响应,同时根据任务当前的状态,及时执行优先级最高的就绪任务,实行占先式调度机制,保证了系统的实时性.uC/OS一Ⅱ的系统体系结构以及与硬件的关系如图1所示嘲.uC/OS一Ⅱ在最初编写时就充分考虑了可移植性问题,大部分uC/OS一Ⅱ代码都是用c语言编写的,只有少量与处理器相关的代码是用汇编语言写的,因为C语言不能直接读写处理器寄存器.要使(中南民族大学计算机科学学院,武汉430074)摘要介绍了嵌入式实时操作系统uC/OS一Ⅱ的内核结构,实现TuC/OS一Ⅱ在s3c44box上的移植,对移植后的系统进行了测试.测试结果表明:移植后的实时系统是稳定可靠的.关键词uC/OS一Ⅱ操作系统;实时操作系统;移植中图分类号TP316文献标识码A文章编号1672.4321(2007)01—0070—04uC/OS一Ⅱ.andplanting弘c/os一ⅡtouC/OS—ii;real-timeScience,SCUFN,Wuhan收稿日期2006—09—22*通讯联系人王江晴(1964一),女,教授,E—mail:wjqin92000@yahoo.tom.cn作者简介彭天玲(1982一),男,硕士研究生,研究方向:人工智能、嵌入式系统,E—mail:ptl一1982@1基金项目湖北省自然科学基金资助项目(2004ABA029)第26卷第1期2007年3月中南民族大学学报(自然科学版)sPengTianlingJiangqingembeddedexperimentalMaster!sCandidate,CollegeComputer应用程序软件弘cOs—II的设置(处理器无关代码)(应用相关代码)MBOX.CMEM.CSEM.CTIME.C弘COS-II的移植L处理器相关代码)软件图1uC/OS—II的软硬件体系结构JournalSouth—CentralUniversityforNationalities(Nat.Sci.Edition)Mar.2007AbstractThispaperintroducedthekernelreal—timeoperatingsystemdescribedrealizations3c44hox.Theresultsshowedthatplantedwasstableandreliable.Keywordsoperationsystem;plant430074.ChinaⅡCOS—IIOSCORE.cuCOSII.c“COSII.H0SCFG.HQ.ClNCLUDES.HTASK.COS—CPU.HOS—CPU—C.COS—CPU~A.ASM63.cornV01.26NO.1structurea万方数据目标机一s3c44box的资源3,c/os一11的移植步骤uC/OS一Ⅱ正常运行,处理器必须满足以下条件:(1)处理器的C编译器能够产生可重入代码.uC/OS一Ⅱ是一个多任务实时内核,一般代码(如一个函数)可能被多个任务调用,代码的可重人性是保证多任务正确执行的基础.(2)支持中断并能产生定时中断(通常在10一100HZ之间).uC/OS一Ⅱ通过处理器产生的定时中断来实现多任务之间的调度.(3)用C语言就可以打开和关闭中断.(4)支持能够容纳一定量数据的硬件堆栈.(5)有将堆栈指针和其他CPU寄存器的内容读出并存储到堆栈或内存中的指令.进行任务调度时,首先将当前任务的CPU寄存器存放到该任务的堆栈中,然后再从另一个新任务的堆栈中恢复其原来的寄存器的值,使之继续运行.所以寄存器读出和存储到堆栈或内存中的指令不可少.宏:GROWTH定义堆栈方向:1表示向下递减OS—TASKSW()C.C中OSTaskstklnit()的实现堆栈初始化函数OSTaskstklnit在任务创建时被调用,作用是初始化任务的堆栈结构.这样,堆栈看起来就像中断刚发生过一样,所有寄存器都保存2在堆栈中.堆栈的内