论文部分内容阅读
近年来,随着嵌入式行业的不断发展,嵌入式操作系统以及各种用户程序的功能日臻完善,在嵌入式主板上运行Linux系统已经变得越来越流行。Linux的Bootloader引导程序、Linux启动过程中大量的硬件初始化、Firefox等众多用户程序,以及日益庞大的用户数据,都对嵌入式系统的数据处理和存储能力提出了更高的要求。
目前,闪存设备具有存取速度比较快、无噪音、散热小、体积小的特点,大容量闪存设备如NOR/NANDFlash、MMC卡等已经广泛应用于手机、MP3、数码相机等嵌入式系统。一方面,闪存设备“先擦后写”的特性以及擦写次数的限制,带来了损耗平衡和软件管理的问题:另一方面,闪存种类、型号和电气属性的多样性,给驱动程序设计和开发人员带来了诸多不便。
本文以科研项目为基础,首先,介绍了:PKUnity平台上的软件环境MUSE系统,对MUSE系统的结构和启动流程进行了详细的说明,并针对如何存储MUSE系统和用户数据,分析了当前闪存设备的特性和对文件系统的需求;其次,介绍了PKUnity平台上多种闪存硬件的特性、设备的驱动程序设计的相关工作和设备的用途,对于驱动程序开发的规范性和开发过程中遇到的问题,进行了相关的说明;最后以大容量的NANDFlash为基础,分析了MUSE系统的启动流程,分别使用直接加载、JFFS2文件系统加载、YAFFS2文件系统加载三种方式来加载内核镜像和根文件系统,详细分析了从系统加电到运行用户态的进程之间的每个步骤,针对系统启动中的瓶颈进行了优化,在FPGA环境中将三种方式的系统启动时间分别降低46.55%,41.75%,43.88%。
这些工作有助于规整嵌入式软件系统的结构和启动流程,有助于开发符合规范的闪存设备驱动程序,有助于充分利用闪存的特点存储系统和用户数据,延长闪存设备的使用寿命。对于嵌入式系统的启动流程的评测和优化,也有一定的参考意义。