论文部分内容阅读
Linux操作系统优异的可靠性、良好的可裁减性、广泛的技术支持,受到了技术界的推崇和赞许,并在许多产品中得到了大量地使用。现在它已经支持几乎所有主流的32位CPU,新的2.6版内核更提供了许多针对嵌入式应用的支持,并且改进了进程调试算法。使得Linux在嵌入式系统中的应用备受关注,目前正被手持设备如手机、导航仪等信息终端领域获得广泛应用。而嵌入式操作系统的关键技术之一,便是板级支持软件(BSP,Board Suport Package)的实现。
本文采用SAMSUNG公司的32位S3C2440处理器作为导航系统的硬件平台的核心处理单元,研究并设计了支持nandflash启动,支持多文件系统的BSP,提出了若干种BSP的优化方法,并在此基础上利用GPS导航、GPRS、嵌入式S3C2440处理器和嵌入式Linux操作系统的优良特性,设计了适合嵌入式导航系统的BSP软件系统。本文主要从BSP的组成结构,执行流程,设计思路,模型设计等方面进行了研究和探讨。着重分析和研究了BSP的引导代码设计,操作系统内核移植以及驱动程序框架和设计,并在此基础上针对导航系统特定应用优化了BSP软件系统。论文完成的主要工作有如下几点:
(1)研究了boot loader的工作原理,并根据嵌入式导航系统的实际硬件资源的特点,实现了引导代码boot loader的设计,使它在目标板上电后完成硬件初始化、下载和引导内核的工作,并为应用开发人员烧写操作系统内核或文件系统设计了一个良好的人机交互界面。为了验证设计的引导程序的正确性,本文将boot loader编译成二进制代码,烧入Nandflash启动运行,对其功能进行了详细的测试和验证。
(2)完成了Linux操作系统向嵌入式导航平台的移植,包括内核的定制与片上文件系统的设计。针对嵌入式导航系统要求文件系统占用存储空间少,系统性能好,且可写的特点,本文提出了使用Squanshfs文件系统,可写的yaffs2文件系统和tmpfs文件系统组合的方法,充分利用多个文件系统的优点,满足了系统的需求。并将内核和文件系统生成映像文件,通过boot loader的下载功能烧入Nandflash启动运行,对内核与文件系统的运行情况进行了测试。
(3)通过大量驱动案例分析,研究了各类驱动的层次和接口,给出了设备驱动程序设计框架,并完成了实现导航系统的USB驱动、触摸屏驱动和串口驱动的驱动程序的设计与开发。
(4)提出了若干种改善系统启动速度和占用空间的优化方法,并给出了具体的实现技术和过程,满足了嵌入式系统启动速度快,存储空间少的要求。
最后,将整个优化设计出的BSP软件应用于嵌入式智能交通导航系统中,作为嵌入式导航系统的基础软件,在本BSP的基础上,配合上层应用软件,已实现了实际嵌入式智能交通导航设备。通过智能交通导航系统来验证了本BSP的优异性能。本BSP也可应用于其他类似的嵌入式应用系统中。