论文部分内容阅读
随着信息与通信产业的发展,嵌入式系统的产品越来越多,在日常的生活中扮演着越来越重要的角色。在一个功能完备的嵌入式系统中,使用嵌入式操作系统已经成为一种流行趋势,bootloader是引导操作系统的必然要求,本文的研究对象就是bootloader。论文以基于S3C2440A为核心的QQ2440V3开发板为硬件研发平台,以Ubuntu 8.04为bootloader构造了交叉工具链,设计并实现了一个能够正常引导ARM Linux操作系统(内核版本号Linux-2.6.24),能够通过串口监视、以太网口和USB接口进行内核下载并固化到Nand Flash上的bootloader。(1)分析了bootloader的通用设计模型,基本概念和典型的设计框架。并针对U-boot这一通用的bootloader作了详细的分析。(2)对bootloader的开发环境的搭建作了介绍。在原理上,通过对U-boot的研究,总结出一个bootloader的总体框架,对bootloader的地址划分、模式分类、关键程序代码等进行了分析,对其开发环境的搭建过程做了比较深入地分析,并针对以S3C2440A处理器为核心的开发板QQ2440V3,对U-boot进行了移植,实现了一个能成功引导ARM Linux内核这一基本功能bootloader。(3)除了实现引导ARM Linux内核这一基本功能外,增加了对USB接口下载的支持,提出了同时支持Nand/Nor Flash启动的支持,汇编级串口打印信息的实现,重点实现了通过USB接口进行映像下载的功能。(4)对bootloader的实现进行了功能测试。本课题研究成果,能使其他嵌入式系统软件工程师能够理解bootloader开发的一般方法,避免以前从头开始开发的困境,高效率的实现一个能够引导ARM Linux内核的bootloader,并把主要的工作放在CPU和板级相关代码的实现上,同时实现了USB下载这一扩展功能,满足以后移动终端无网络芯片高速下载的能力,达到了研究目标。