基于Xscale架构实训的嵌入式操作系统研究

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:jy02191348
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:通过研究一套基于Xscale架构实训的嵌入式操作系统,使得学生在运用此操作系统构造嵌入式应用系统时变得相对简单、明了,该系统学起来比较容易,更便于学生掌握与理解,该系统是一套应用程序和系统分离的全新设计的嵌入式操作系统;系统应用程序可以独立编译和下载,与嵌入式系统分离;系统具有针对性强、体积小、无关代码少等优点。系统研究是针对嵌入式系统教学实验的要求,紧密结合教学实践,该系统内核精巧,结构清晰,利于学生理解和认识操作系统;外围模块易于扩展,便于在实验中扩展外围设备,应用程序容易构造,便于学生编写实验控制的程序。运用本系统开发嵌入式系统,可降低系统开发难度,提高开发效率。
  关键词:Xscale架构;任务调度;资源管理;实训
  作者简介:邱小林(1962-),男,江西樟树人,南昌理工学院理事长,教授;周亦人(1958-),男,江西宜春人,南昌理工学院实验中心,高级工程师。(江西 南昌 330044)
  中图分类号:G642.44     文献标识码:A     文章编号:1007-0079(2011)20-0125-03
  
  近几年来随着嵌入式系统突飞猛进的发展,对技术人员的专业能力要求也越来越高,这就增加了嵌入式人才培养的难度,而高校在培养嵌入式人才时使用的操作系统基本上是基于Linux的,对通用的Linux系统进行裁剪,将不需要的模块和功能去除掉,仅保留与需求相关的模块,这样就可以实现应用系统。但是,这种系统在裁剪时很容易出问题,首先,从应用上看,这一类经过裁剪得到的系统其实还是面向一个通用的平台,比如HOpen实际上是一个桌面系统;手机操作系统其实也是一个“五脏俱全”的通用平台。其次,这一类系统大多对系统资源要求比较高,在手机、PDA、机顶盒上跑起来比较顺,如果应用到微波炉控制就“装”不下了。再次,能够裁剪这一类系统的专业水平要求更高,不是普通程序员通过简单看资料就能做到的,即使是有些系统配备了裁剪软件,那也对技术人员要求很高,这给嵌入式系统教学带来了很大难度。而且这些操作系统都是在服务器上(PC)编写实验程序,应用服务器的编译系统生成一套完整的嵌入式操作系统下载到目标板上,每次改写程序都需要重新生成一遍系统。这就造成了资源浪费、实验周期加长,下载过程中出错概论增大等弊病。为解决这些问题,本文介绍了一套基于Xscale架构的应用程序和系统分离的全新设计的嵌入式操作系统,该系统应用程序可以独立编译和下载,与嵌入式系统分离。该系统还具有针对性更强,体积更小,无关代码更少等优点,学起来比较容易,更便于学生掌握,该系统具有很好的推广价值。
  一、基于Xscale架构实训的嵌入式操作系统的设计
  1.内核功能分析与设计
  一个完整的操作系统由如下几个部分组成:内存管理;任务调度;输入输出管理;设备管理;文件管理。嵌入式操作系统面向特定的应用,本身不追求大而全,相反,嵌入式系统更强调的是精巧使用,量身定制,不使用无关的代码。嵌入式系统将做主要的管理功能保留在内核中,其余模块则作为可扩展模块根据具体的应用,确定是否链接到系统中。嵌入式系统的内核中主要是任务调度和资源管理。
  (1)任务调度。任务调度是嵌入式操作系统内核的核心,无论是实时性还是多任务操作系统,任务调度提供决定何时必须执行哪个任务,即在嵌入式硬件系统环境下,准时地完成多个任务的运行。实时性操作系统和多任务操作系统以及多任务实时性操作系统,差别在与内核中对任务和实时性处理的机制不同。多任务是操作系统在设定的时序内处理多个活动的能力,即多个执行线程在并发地运行。在单处理器环境下,内核是依据预先设定的调度算法,按照任务的优先级执行的。各个扩展功能在不同的任务或者进程中体现,不嵌入到内核中。
  (2)资源管理。对于嵌入式系统来说,资源往往是有限的,如何管理好系统资源,保证在任务切换的时候,资源和任务能够相互匹配,不出现资源争用或者使用内存跨界等问题,保证任务运行能够有足够的资源支撑,同时在访问可共享资源的时候不出现冲突导致死锁等异常情况。本系统面向嵌入式教学实验,所以选择多任务操作系统作为整个操作系统设计目标。
  任务调度部分包括创建任务、删除任务、改变任务的目前状态和查询任务状态等功能。重点在于任务调度策略的设计和实现上,调度策略是否适合嵌入式应用的特定要求,是直接影响操作系统的关键因素。资源管理,重点是资源和任务的关联,互斥资源的管理,资源申请和释放,在任务切换的时候,能够释放资源,启用的时候能够申请到资源。在资源不能满足的情況下,挂起任务,并暂时释放已经申请到的互斥资源。
  将文件管理、中断管理、设备管理等,作为扩展模块,不纳入内核,但是同时要建立标准的格式规范,任务在使用这些功能的时候要遵循规范,这样才能有效被内核调度和管理。
  2.硬件驱动模块对硬件设备支持的设计
  嵌入式系统与硬件关系密切,可以说是为硬件量身定制的,如掌上电脑、机顶盒、智能仪器、娱乐设备等等,硬件组成大相径庭,如果单独为每个硬件编写控制程序,那就成了单纯的单片机,失去了嵌入式系统的优势,产品的开发、维护和后续发展都会很困难,产品就会失去可持续发展力。如果让操作系统管理起来这些功能不同、控制不同、形态各异的硬件设备,就是要通过硬件驱动模块。硬件驱动模块,在硬件实体和操作系统之间建立起来一个承上启下的中间层。对上,操作系统看到的是统一接口的硬件,按照接口规范,操作系统可以用同一种方式去操控和访问不同的设备;对下,硬件驱动模块要能够解释来自上层的命令,转化成实际的控制操作。
  硬件驱动接口主要包括:打开;关闭;存取——读入、写出;状态查询;状态控制。
  3.用户程序接口的设计
  用户程序对于整个嵌入式系统来说,其实就是一个任务。内核加载用户程序作为一个任务开始运行。用户程序申请内存、申请各项资源、实现输入输出,完成自身预定的功能。用户程序接口,主要是用户对于资源的申请、对于硬件设备的操控和任务完成时的退出机制。
  4.研究调用这些接口函数访问系统所提供的功能
  任务在运行过程中会和系统有如下的交互:申请资源——申请内存,申请设备端口如USB、串口、无线口等;使用硬件设备——如键盘、触摸屏、数据采集模块、通讯模块等;实现输入输出——数据输入,数据分析综合之后的输出;任务完成——任务完成后,通知内核删除任务。
  对应地,内核在向任务提供这些接口时要根据整个系统中所有任务的运行情况进行有效调度和管理。一个任务被启动后,要分配唯一的ID号,这个ID号要和该任务调度和使用的所有资源关联起来。任务被删除后,所有占用的资源被释放。任务在申请资源的时候,如申请串口,如果其他任务已经独占本资源或者某个硬件模块,则这个任务将被挂起,直到申请的资源被释放才继续运行。不同的任务可以赋予不同的优先级,优先级别高的任务会优先得到资源。
  本操作系统已经完成了上述设计和实现。内核中主要包括任务调度管理和资源管理,建立了设备驱动规范,用户接口规范。用户可以自行编写驱动程序,挂载到系统中。可以编写应用程序,在系统中运行。通过内核、硬件驱动、应用程序三级构架,让学生对嵌入式操作系统有了明晰的认识;规范的概念,降低了嵌入式应用开发的难度,方便学生编写实验程序,甚至编写复杂的应用程序。同时,在本操作系统的基础上,还实现了一个复杂的抄表应用,证明了我们设计思想是正确的,本系统有很好的实用性。
  二、基于Xscale架构实训的嵌入式操作系统的集成
  1.算法设计
  我们选择基于多任务系统的设计目标作为面向教学应用的嵌入式系统的实现方案。在系统中,实现一个微内核,内核包括任务调度和资源管理两大块。内核结构要紧凑,重点是设计任务调度算法,资源管理算法。
  (1)任务调度算法。每一个任务(task)是一个独立执行的线程,该线程可以占用CPU、内存、IO和外设等资源,完成相应的功能。每一个应用可以启动多个任务,在系统内并发执行,任务之间通过通讯接口相互协调,共享某些资源或者数据。系统根据调度算法调度不同任务运行,赋予任务访问资源的权限,在任务资源不能申请到或者出现更高优先级的任务时,能够选择适时的时机,将任务挂起;在被挂起的任务重新获得资源之后,能够继续运行。任务在满足终止条件时,可以终止并删除任务。任务还要划分优先级,优先级高的任务被优先调度。这样在设计任务管理模块时,给每个任务要分配如下的信息字段:1)任务编号(Task ID),这是系统生成的,用以区分不同的任务。2)任务名称(Task Name),这个是应用软件给任务起的名称,主要是应用层管理和区分任务使用的。3)任务优先级:在教学系统中,不设置过多的优先级,以免过于复杂,优先级设置为4级别,分别为0-3,3为最高级。4)任务状态:设置了就绪(ready),挂起(suspend)和阻塞(pended)三种状态,其中,就绪态处于该状态的任务等待CPU分配资源,挂起态处于该状态的任务不能被执行,等待调度,阻塞态是因为申请的资源不能满足,被暂时阻塞,等待其他任务释放资源之后,满足资源要求才能被调度为就绪态,排队等待CPU资源处于就绪态的任务,优先级最高的被先执行。5)资源列表:任务占用的资源列表。资源列表是给资源管理模块查询使用的。当系统出现资源争用时,系统查看处于阻塞态的任务,可以将申请到而未使用的资源释放,以便某些任务先完成,之后释放所占资源,解除阻塞态任务。6)其他字段:每个任务还有其他的一些附加字段,存储一些信息。
  (2)资源管理算法。嵌入式系统的资源是有限的,在多个任务间有效地管理资源,实现资源的合理分配回收,最大限度降低任务由于资源不足而被迫阻塞的情况,提高系统运行效率。
  每个资源分配如下信息字段:资源名称(任务按照这个名称来申请资源);资源类别;资源状态(空闲,已被申请);资源拥有者(当前谁申请到);资源使用状态(使用中,未使用);其他字段。系统中的内存、IO、中断资源等等都可以规划为资源,供任务申请使用。
  2.编码实现
  (1)任务调度。
  数据结构
  struct TaskNode{
   UINT uTaskID; // 任务编号
  char szTaskName[MAXTASKNAMELEN+1]; //任务名称
  UINT uPrior; // 任务优先级
  UNIT uStatus; // 任务状态
  FUNCPTR entryPt; // 任务函数入口
  struct ResourceNode *lpResource; // 资源列表
  …
  }
  调度算法:
  1)在不同优先级的任务中采用抢先式多任务调度,优先级别高的任务被优先分配CPU资源(见图1)。
  2)同一级别的任务之间采用时间片轮转机制,确保每个任务都会有取得CPU资源的机会,都会被公平地调度和执行。如果不采用轮转机制,当系统中存在多个相同优先级的任务共享CPU时,第一个获得CPU的任务可以不被阻塞地独占CPU。如果没有阻塞或其他情况出现,他从不会给其他相同优先级的任务运行的机会。轮转机制是使用时间片来实现这种相同优先级任务CPU公平分配的。一组任务中的每个任务执行一个预先确定的时间段,称为时间片;然后另一个任务执行相等的一个时间片,依次进行。这种分配是公正的,它保证一个优先级组中,在所有任务都得到一个时间片之前,不会有任务得到第二个时间片。
  (2)资源管理。
  数据结构
  struct ResourceNode {
  UINT resID;// 资源编号
  UINT resType; //资源类型
  UINT resStatus;// 资源状态
  UINT resOwner;// 资源拥有者
  …
  }
  资源调度:
  1)申请资源。
  BOOL resApplication(TASKPTR lpTask,UINT resID)
  参数:lpTask——要申请资源的任务;resID——资源编号;返回——如果申请成功,返回TRUE,任务可以自主使用;如果不成功,返回FALSE,任務会被阻塞。
  2)释放资源。
  void resDelete(TASKPTR lpTask,UINT resID)
  参数:lpTask——要释放资源的任务;resID——资源编号。
  说明:资源被释放后,资源调度模块会查看其他被阻塞的模块是否在等待本资源,如果是,则优先分配给被阻塞的任务,如果该任务所有资源都申请到了,则将其置为就绪态,等待获得CPU资源。
  3.系统调试
  由于嵌入式系统的运行环境往往和开发环境的硬件资源不一致,通常开发环境运行在x86系列微机上,操作系统多为Windows系列;而嵌入式系统测试则是嵌入式CPU,如ARM、PowerPC、C51等等。这两者在目标代码级上不能兼容。在上位机上不能直接调试,而目标机由于资源有限,不能运行开发环境。解决问题的办法就是采用交叉编译环境,即在微机上编辑编译出目标板的代码,传入到目标板上执行。我们的开发环境是:Microsoft Visual Studio 2008 + IAR Embeded Workbench。经过代码分模块编辑、编译、调试。然后组装调试,已经完成了系统开发。在中科院计算所嵌入式开发板中能够成功运行。
  三、应用前景
  基于xScale构架的面向教学培训的嵌入式操作系统已成功运用到智能手持设备中,运用该系统已成功地研发了智能数据采集终端,应用于电力数据采集、水表、燃气表抄表、物流、盘点等领域,收到了良好的效果。表1~表3是基于本操作系统的几款机型。
  SE400是面向智能移动应用的新型掌上电脑,采用嵌入式CPU,智能操作系统平台,多扩展模块,适用于供电、供水、供气、物流、测绘、公安、海关、邮政、餐饮、宾馆等行业的应用,具有功能丰富、配置灵活、运行高效、可靠性高、安全性强等特点。
  综上所述,基于Xscale架构的嵌入式操作系统是一套应用前景广阔的操作系统。
  
  参考文献:
  [1][美]RobertLove.Linux内核设计与实现[M].北京:机械工业出版社,
  2006.
  [2]陈是知.uC/OS-Ⅱ内核分析、移植与驱动程序开发[M].北京:人民邮电出版社,2007.
  [3][美]弗斯特.PalmOS编程宝典[M].北京:人民邮电出版社,2006.
  [4]李忠民,杨刚,等.ARM嵌入式VxWorks实践教程[M].北京:机械工业出版社,2006.
  [5][美]拉布罗斯.嵌入式系统构件(第二版)[M].北京:机械工业出版社,2002.
  [6]李向蔚,桑楠,熊光泽.嵌入式操作系统定制的通用性研究[J].单片机与嵌入式系统应用,2005,(3).
  (责任编辑:麻剑飞)
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
摘要:实践教学是对课堂理论教学的重要补充,是大学教育不可或缺的一个组成部分,对学生解决实际问题和创新能力的培养具有重要意义。对“水泵及水泵站”课程研究性实践教学进行了探讨,提出了学以致用的教学目标和理论与实践相结合的教学方法,指出实验、设计和实习等现场教学活动能有效地提高教学质量,有利于提高大学生的综合素质,培养新一代有创新意识的复合型人才。  关键词:研究性教学;创新;人才培养;水泵及水泵站  
期刊
摘要:从分析中国集成电路行业发展出发,紧紧抓住沈阳化工大学电子科学与技术专业的办学特色这一中心环节,阐述了该专业课程体系建设、实践环节和实践效果,提出了电子科学与技术本科专业基本办学思路。  关键词:电子科学与技术;专业特色;课程体系  作者简介:王健(1965-),男,辽宁沈阳人,沈阳化工大学信息工程学院,副教授;樊立萍(1965-),女,山东淄博人,沈阳化工大学信息工程学院,教授。(辽宁沈阳1
期刊
摘要:电气控制与可编程序控制器是自动化及相关专业实用性极强的专业课,社会对该领域高端人才的迫切需求要求高校提高该课程的教学效果。结合授课过程中的体会,分别对课堂教学、实践教学及考核方式进行了探讨,以激发学生的学习兴趣、培养学生的实践创新能力。  关键词:电气控制;可编程序控制器;教学;实践  作者简介:刘晓青(1984-),女,河南周口人,周口师范学院物理与电子工程系,助教;李晋(1965-),男
期刊
摘要:通过对211位电子系学生的跟踪调查,详细分析了实习对培养高职学生综合素质的作用,并提出了一套有利于校企合作发展和人才培养的阶段性实习模式,对高职教育工作者有一定的参考价值。  关键词:高职教育;校企合作;实习;综合素质培养  作者简介:徐平凡(1983-),男,江西吉安人,中山职业技术学院电子系,助教;余振标(1981-),男,广东中山人,中山职业技术学院电子系,助教。(广东中山528404
期刊
摘要:社会主义核心价值体系在高校的教育过程是一种典型的信息传播过程,即教育者(高校和高校教师)将某种信息(即社会主义核心价值体系)通过某种途径向受教育者(高校学生)进行传达,以期达到影响学生、使其接纳并内化为行动这一目的。从媒体把握的角度来看,社会主义核心价值体系在高校的传播方式上要利用好人人互动的人际传播媒体、群体互动的组织传播媒体、多向互动的网络传播媒体。  关键词:社会主义核心价值体系;高校
期刊
摘要:在新形势下,高校大学生党建管理已成为大学学生教育管理模式的重要组成部分,无论是从党的组织程序上还是党的思想教育上都是基层党建工作的重点。近年来,在高校连续大力发展党员的形势下,党员数量不断增长,然而党建工作队伍扩充却明显滞后于党员数量的增加,它并没有随着高校体制的改革而得到相应的补充和加强,过去的大学生党建管理模式已不再适合新时期党建工作的开展。因此必须重视高校党建工作队伍的建设,造就一支德
期刊
摘要:结合从事建筑给水排水毕业设计指导工作的经验,从毕业设计题目的选择、毕业设计指导方式和答辩等几个方面介绍了提高建筑给水排水工程毕业设计质量的几点做法。  关键词:建筑给水排水工程;毕业设计;教学改革  作者简介:左梅梅(1975-),女,天津人,后勤工程学院营房管理与环境工程系,讲师;丁昭霞(1973-),女,重庆人,后勤工程学院营房管理与环境工程系,副教授。(重庆401311)  中图分类号
期刊
摘要:学习动机是推动学生进行学习活动的内在原因,是激励、指引、推动学生学习的强大动力。它不是某种单一的结构,它包括学习的需要、学习信念、学习兴趣、学习诱因等心理因素。对工科院校大学生学习动机及行为的研究,可以深层次地分析大学生的学习状况,找到学习效果不理想的症结,及时纠正不良学习行为,端正学习动机,提高学习成绩,促进大学生的成长成才。  关键词:工科院校大学生;学习动机;学习行为  作者简介:杨卫
期刊
摘要:本项研究通过开放式和封闭式问题组成的问卷采集研究数据,以定性定量分析相结合的方式考察了任务型教学活动在英语专业基础阶段内容依托教学课堂的实践效果。研究结果表明,任务型教学活动对学生专题内容知识的理解、情感意识和跨文化交际素养的培养等方面能够产生积极的影响。总结出了适合英语专业基础阶段内容依托教学课堂的五种任务类型特点以及目前内容依托教学课堂任务实践中存在的问题,提出了英语专业基础阶段内容依托
期刊
摘要:针对机械专业生产实习普遍存在不务实的状况,提出在生产实习中构建“反求”模式训练学生的实际应用能力,改革原实习方式、实习任务、实习方法等,促使学生沉入到生产现场、运用所学知识“反求”现场相关技术,吸收并继承现场实际可行的技术套路。通过近年来的实践,取得了较好的实习效果。  关键词:生产实习;反求;实战;应用能力  作者简介:张勇(1974-),男,重庆人,重庆工商大学机械工程学院,讲师;朱朝宽
期刊