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

嵌入式操作系统μCOS_Ⅱ在单片机上的移植.pdf

嵌入式操作系统μCOS_Ⅱ在单片机上的移植.pdf

预览

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

15 金币

下载此文档

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

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

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

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

第37卷第1期太原理工大学学报Vol.37No.12006年1月JOURNALOFTAIYUANUNIVERSITYOFTECHNOLOGYJan.2006文章编号:100729432(2006)0120100204嵌入式操作系统μC/OS2Ⅱ在单片机上的移植靳文兵,白凤娥,潘志栋(太原理工大学计算机与软件学院,山西太原030024)摘要:简要介绍μC/OS2Ⅱ的组成和工作原理,详细分析移植的环境和条件,明确指出移植中的关键问题,即堆栈的建立、释放和恢复问题。以51单片机系统为例,提出了相应的解决办法,并对编制的程序代码进行了说明。通过在8031单片机系统中建立工作堆栈、仿真堆栈、任务堆栈及其附加段,修改μC/OS2Ⅱ中与移植有关的程序文件,实现了μC/OS2Ⅱ在单片机系统中的移植。相关实验测试进一步证实了本移植思想。文章深入讨论部分为嵌入式操作系统μC/OS2Ⅱ的复杂应用提供了指导。关键词:单片机;嵌入式系统;操作系统;移植;μC/OS2Ⅱ中图分类号:TP368;TP311.54文献标识码:A嵌入式实时操作系统在许多领域得到广泛应5)与移植相关部分(OS_CPU_C.C、OS_CPU_用。μC/OS2Ⅱ是一种源代码公开的可移植、可裁剪A.ASM):需要根据不同的CPU来编制实现堆栈的占先式多任务嵌入式实时操作系统[1],其功能完建立的函数和底层任务切换、时钟节拍中断函数等;备、性能可靠、短小精炼,与其它嵌入式实时操作系另外还需要根据应用不同而更改或调整部分头函数统相比,它更适用于硬件资源有限的单片机系统。(OS_CFG.H、UCOS_II.H、OS_CPU.H)的内容。在国内,随着高速、高性能51系列单片机的出1.2μC/OS2Ⅱ的任务调度机制现,使51系列单片机的应用更趋广泛。为51单片调度是指任务间的转换,即保存一个任务的执机系统移植嵌入式实时操作系统,具有一定的现实行环境并恢复另一个任务的执行环境,也称任务上意义。由于单片机硬件系统提供的可利用资源相对下文的切换,其本质是任务堆栈与工作堆栈的相互较少[2],将μC/OS2Ⅱ移植到51单片机系统中,其移复制。任务堆栈是每一个任务应有的、用于保存其植方法有许多特别之处。执行时的上下文环境参数,包括其被中断的地址、工作寄存器和局部变量的值等信息。任务堆栈的数量1μC/OS2Ⅱ工作原理与任务数量相等,系统任务也要有它们各自的任务1.1μC/OS2Ⅱ的组成堆栈。工作堆栈则是正在占用CPU的任务所使用按功能分类μ,C/OS2Ⅱ主要由5部分组成:的堆栈,也称硬件堆栈或系统堆栈。每台机器或者1)核心部分(OS_CORE.C):完成操作系统初说每个系统只有一个工作堆栈,CPU通过堆栈指针始化、任务调度等工作。操作工作堆栈的内容,如图1中(1)、(2)两部分所2)任务部分(OS_TASK.C):完成任务建立、示。箭头组①是指工作堆栈的内容向任务堆栈的复删除、挂起和恢复等工作。制,而②则恰恰相反。每一次任务的调度都要进行3)时钟部分(OS_TIME.C):完成任务延时和任务上下文的保存和切换工作,即将当前工作堆栈时间控制等工作。的内容复制到旧任务的任务堆栈中,同时也把新任4)任务通信和内存管理部分(OS_FLAG.C、务的任务堆栈内容装入工作堆栈中去。OS_MBOX.C、OS_MEM.C、OS_SEM.C、OS_Q.μC/OS2Ⅱ操作系统总是调度当前就绪队列中C、OS_MUTEX.C):完成协调任务和临界资源管理优先级最高的任务,并使其作为新任务进入执行状等工作。态并开始占用CPU资源。调度发生在每一个时钟收稿日期:2005203222作者简介:靳文兵(1968-),男,山西洪洞人,硕士,主要从事计算机监控研究,(Tel)13603518440,(E2mail)wenbbo@sina.com通讯联系人:白凤娥,教授,(Tel)13835102363,(E2mail)baif1@sina.com第1期靳文兵等:嵌入式操作系统μC/OS2II在单片机上的移植101中,该系统主要包括4部分:1)Intel8031处理器,内含128字节RAM存储器,是单片机系统的控制核心。2)8031外部扩展数据/程序存储器。程序段地址0H~4000H为实验板系统占用,4000H~0BFFFH,提供实验用程序段和数据段。3)两片74LS274芯片,分别可编址,供8031扩展输出口。4)发光二极管指示灯12只,可展示三个任务的工作状态。2.2软件资源1)嵌入式实时操作系统μC/OS2ⅡV2.52源代码。移植主要利用其核心部分,即任务调度和部分时间管理代码。2)KeilElektronik