关于嵌入式操作系统UCOS-II的内核实现研究论文_袁艳芳

关于嵌入式操作系统UCOS-II的内核实现研究论文_袁艳芳

(北京智芯微电子科技有限公司 北京 100000)

摘要:嵌入式操作系统UCOS-II具有多种、多样的系统服务功能,能够实时进行多项任务的管理,并将抢占式调度策略应用其中,高效、顺利的完成各项任务,保障相关应用程序的可靠性和可行性。基于此,本文结合UCOS-II操作系统的特点进行分析,了解其内核结构,探讨其在任务管理、内存管理、时间管理等方面的优势作用,并对其内核实现进行深入的研究,并为嵌入式操作系统UCOS-II的持续改进和升级提供有价值的参考。

关键词:嵌入式操作系统;UCOS-II;内核实现

前言:UCOS-II作为一种嵌入式操作系统,具有小巧、使用便捷的优势,能够能够提供多样化的系统服务,实时管理多个工作任务,在移动电话、GPS、路由器以及智能仪器中有着广泛的应用。运行UCOS-II系统,添加相关应用程序,执行特定的功能和任务。该过程中,需要了解UCOS-II的内核结构和运行机制,合理予以运用,高效进行各项任务的管理和处理,在内核中实现。

1.UCOS-II的内核结构

1.1临界段

实时嵌入式操作系统UCOS-II的工作运行中,能够利用其完全开放的内核源码,同时应用其丰富的资源,高效进行相关程序和任务的处理。在UCOS-II的内核结构中,其处理核心为oscore.c源码,涉及系统运行、任务调度和事件处理等工作内容。而任务的建立、删除的恢复中,则是由ostask.c源码进行处理。完成任务延时,则需要运用到时钟处理源码,即为ostime.c。在UCOS-II的工作运行中,实时对多项任务进行处理和调度,并实现通讯的同步,加强各项任务之间的联系。临界段是UCOS-II系统内核结构中的重要组成部分,操作系统的临界段操作功能,主要用于资源共享。在UCOS-II系统的工作运行中,需要在关中断的情况,进行临界段代码的处理。该过程中,可以避免其他任务进入其中,防止临界段代码处理工作受到干扰。完成对临界段代码的处理后,再开中断。而在开关中断的过程中,需要由OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()进行控制。根据系统未处理器自身的OS_CPU.H文件,对OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()做出定义。

1.2任务

UCOS-II系统在任务处理上,并非是简单的无限循环,而是应用OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1以及OS_LOWEST_PRIO作为优先级任务,根据将来使用的需要进行保留。然后对用户的多个应用任务赋予优先级,根据操作系统的实际运行情况,科学、合理的进行选择。

1.3中断处理

在嵌入式操作系统UCOS-II的中断处理工作中,需要启动中断服务子程序。在书写中断服务子程序的过程中,使用汇编语言,可以利用C语言编译器进行在线汇编,然后将中断服务子程序代码输入到程序文件中,即可完成对中断服务子程序的书写。在中断服务子程序框架中,在保存CPU寄存器的基础上,调用OSIntEnter。启动中断服务时,需要在程序中执行用户代码,并调用OSIntEnter()。恢复CPU寄存器,执行中断返回指令。

1.4中断与时钟节拍

嵌入式操作系统UCOS-II内核进入中断状态,可以根据OSIntEnter()和OSIntExit()进行判断,需要在保护现场的基础上,进行CPU寄存器入栈、中断函数处理等操作。然后进行进行CPU寄存器出栈、中断返回等操作,进而达到恢复现场的目的。UCOS-II系统内核的中断状态有着多种类型,其中包括时钟节拍。在扫描任务列表时,可以根据延时任务的具体情况,为上下文切换做好准备。根据周期性信号源,实现时间延时,并对超时进行确认,掌握时钟节拍率,可以从中了解系统的额外负荷情况。参考应用程序的精度,应用硬件定时器,判断时钟节拍的频率。UCOS-II系统在执行多项任务时,调用OSStart(),进而开启时钟节拍器。在调用OSIntEnter()、OSTimeTick()和OSIntExit()的前后,分别保存和恢复处理器寄存器的值,进而执行中断返回指令。

1.5初始化与启动

嵌入式操作系统UCOS-II的初始化,需要在其他服务调用之前,调用初始化函数OSInit()。基于初始化函数OSInit(),建立idle tast(就绪状态的空闲任务),然后以最低优先级,执行OS_LOWEST_PRIO,并对空数据结构缓冲区进行初始化处理。在启动多任务时,调用OSStart(),启动UCOS-II系统。

期刊文章分类查询,尽在期刊图书馆该过程中,在调用OSInit()后,完成UCOS-II系统的初始化。然后调用OSTastCreateExt()、OSStart(),开始执行多任务。在 UCOS-II系统执行任务的过程中,主要分为中断服务(中断、中断结束)、运行(任务调度、任务被占先)、就绪(创建任务、删除任务)、休眠以及等待或挂起等状态,应用任务控制块、任务就绪表[1]。

2.UCOS-II内核实现的应用

2.1任务创建

UCOS-II的内核实现,任务创建是十分重要的环节。用户任务管理工作的开展,需要以任务创建作为前提。应用OSTastCreate()进行任务创建,并传递任务地址。在任务创建的过程中,也可选择函数OSTastCreateExt()。

2.2任务调度

作为抢占式实时内核,在执行多任务的过程中,需要对任务的优先级进行判断。对于优先级最高的任务,分析其准备就绪情况,将嵌入式操作系统UCOS-II正式投入运行。不同的任务,其优先级要求也存在着一定的差异,需要做好任务调度工作,对于最高优先级任务进行查找,确认其是否准备就绪,为上下文的切换做好充分 准备。任务调度时间与程序中的任务数并无关联。在UCOS-II系统的运行中,优先级高的任务会率先进入就绪准备状态。在此基础上,应用调度器,有条不紊的完成各项任务。该过程中,使用函数OSSched()进行调度,而在中断级的调度工作中,则需要运行函数OSIntExt()。在确定任务优先级的过程中,可以参考就绪表,依据OSRdyGrp值和OSRdyTb1p[3]来确定高3位和低3位,根据OSRdyGrp=Ox08和OSRdyTb1p[3]==Ox3a进行判断。

将优先级任务放入到就绪表中,用于识别任务是否进入就绪态,并对优先级进行假设。将任务就绪表的相应位进行清零处理,UCOS-II中的所有任务均脱离就绪态吗,OSRdyGrp的相应位也会归零。

2.3任务切换

嵌入式操作系统UCOS-II中的任务切换,以任务寄存器入栈(挂起的任务)和任务寄存器出栈(较高优先级任务)出栈。调用OS_TASK_ SW(),执行系统调用指令,保护当前任务现场,恢复新任务的现场。然后执行中断返回指令和新的任务。调用OS_TASK_ SW()前的数据结构,根据存储器高地址和低地址,执行低优先级任务(OS_TCB,OSTCBCur)、高优先级任务(OS_TCB,OSTCBHighRdy),保存当前CPU寄存器的值。然后再重新装入要运行的任务。在任务切换的过程中,切换OS_TASK_ SW() 代码。在当前的堆栈中,推入R1、R2、R3、R4。再从新堆栈中弹出,进而执行中断返回指令。

2.4内存管理

在内存和释放内存的分配过程中,应用函数malloc()和free()进行动态分配。由于UCOS-II是嵌入式实时操作系统,其中可能存在内存碎片。在UCOS-II系统的运行过程中,将连续的大块内存进行分区管理,形成多个内存分区。在多任务执行的过程中,可以根据任务执行的实际需要,从中获取内存块。应用内存控制块,井然有序的进行内存管理。在内存控制快中,形成系统、完善的数据结构,能够对不同的内存分区进行实时跟踪,掌握分区起始地址、下一个空闲内存块、内存块大小、内存块数量以及空闲内存块数量。在内存管理工作中,在OS_MEN_ EN=1的情况下,OS_GFG.H文件中执行初始化命令OSMemInit()。另外,分别调用OSMemCreate()、OSMemGet()、OSMemPut(),用于建立内存分区、分配一个内存块和释放一个内存块。另外,在UCOS-II系统的时间管理工作中,与之相关的系统服务包括OSTimeDLY()、OSTimeDLYHMSM()、OSTimeDLYResmue()、OSTimeGet()以及OSTimeSet()。使用OS_ENTER_CRITICAL和OS_EXIT_CRITICAL作为临床资源保护措施。任务级的共享资源,。则需要利用OSSchedLock进行保护[2]。

结论:综上所述,嵌入式操作系统UCOS-II的内核实现,能够有效提升其在移动电话、GPS、路由器以及智能仪器等多个领域的应用价值,进一步完善和丰富其功能。该过程中,需要结合嵌入式操作系统UCOS-II的结构特点,深入了解临界段、任务、中断处理、时钟节拍以及初始化与启动等方面的内容,充分利用UCOS-II系统的功能,在任务创建、任务调度、任务切换、内存管理等方面发挥其重要作用,进而推动UCOS-II的广泛应用。

参考文献:

[1]何康华,雷阳阳.基于uCOS-III的教育机器人系统设计[J].电子测量技术,2016,39(10):114-118.

[2]杨利.在ucos-Ⅱ嵌入式操作系统平台上实现exfat文件系统[J].科技资讯,2015,13(05):11+13.

论文作者:袁艳芳

论文发表刊物:《电力设备》2019年第4期

论文发表时间:2019/7/8

标签:;  ;  ;  ;  ;  ;  ;  ;  

关于嵌入式操作系统UCOS-II的内核实现研究论文_袁艳芳
下载Doc文档

猜你喜欢