论文部分内容阅读
随着嵌入式系统软硬件技术的深入发展,为了更好的适应更加复杂的应用开发,在嵌入式系统中普遍引入了嵌入式操作系统,嵌入式操作系统的引入又反过来有力地促进了各种应用的开发工作。嵌入式应用的领域极其广泛,其中有大量的应用是属于中小型的应用系统,对于这些中小系统而言,VxWorks、WinCE以及嵌入式Linux等操作系统或者是成本太高,或者是结构相对复杂。这种情况下,采用开源的μC/OS-II作为系统内核是个不错的选择,这种内核具有规模小、实时性好、成本低等优势,十分适合作为构建中小型嵌入式系统的基础。但是,遗憾的是μC/OS-II本身没有设备设备管理的功能,而设备驱动的开发在嵌入式系统中占有十分重要的地位。μC/OS-II的开发者后来提供的一系列μCGUI、μCFS、μCIP、μCFLASH等设备驱动的设计主要着眼于通用性,而没有和内核紧密的融合起来,并且需要商业许可证才能获得。针对这种情况,本文尝试为μC/OS-II内核建立一个设备驱动框架,使得开发者在此基础上开发驱动程序可以有章可循、节省开发时间。通过对一些流行的操作系统进行考察,可以看到它们各自都有一套严整的设备设备管理方案。在这些操作系统下开发驱动程序,开发者可以集中精力面对设备本身的工作逻辑,只需要完成设备驱动框架所要求的一些接口函数就可以了,而不需要考虑怎么处理驱动与内核的关系。广义的设备驱动包括两个部分:与设备相关的部分和与设备无关的部分(或者称为底层设备驱动和高层设备驱动)。本文按照这个分类,对在μC/OS-II内核上建立底层设备驱动和高层设备驱动分别进行了研究。底层设备驱动部分主要讨论了设备管理框架和中断服务例程框架的设计和实现。高层设备驱动部分主要研究了网络协议栈以及图形用户界面两种驱动,对自主开发或者采用移植的方式建立高层设备驱动进行了深入的探讨。考虑到文件系统在嵌入式系统中得到越来越广泛的应用,本文最后,对建立在NAND Flash之上的YAFFS文件系统进行了重点分析,并给出了移植到μC/OS-II内核的详细过程。