基于ARM的Nand Flash启动分析与移植
2012-11-30蔡利平任家富张敬伦
蔡利平,任家富,童 锐,张敬伦
(成都理工大学 信息科学与技术学院,四川 成都610059)
0 引 言
嵌入式系统开发在当今日新月异的科技时代独树一帜,生活中大量的智能电子设备就是嵌入式应用的一个缩影,比如PDA、机顶盒和智能手机等。然而,在嵌入式软件的开发中,嵌入式引导程序 (Bootloader)的设计、开发与嵌入式系统的硬件息息相关,这个特性决定了不可能用一个通用程序作为众多嵌入式系统的引导程序。在这样的背景下,针对不同的开发环境设计不同的嵌入式系统引导程序成为首要问题,本文根据实际的情况,详细的分析了嵌入式引导程序的引导、启动原理,同时结合S3C2410开发板和 U-Boot-1.1.6引导程序,分析从 Nand Flash启动的具体流程,修改并完成了 U-Boot从Nand Flash启动的移植。
1 Bootloader介绍
嵌入式软件从应用角度可以划分为4个层次:引导程序 (Bootloader)、内核、文件系统以及嵌入式应用软件(如GUI)。Bootloader是嵌入式系统中第一个被运行的程序,其功能是初始化部分硬件、为随后加载的系统内核准备相关的系统参数 (机器类型ID和启动参数标记列表在RAM中的地址)、加载内核到内存并将系统的控制权移交给内核。现在支持ARM体系结构的bootloader很多,比如Vivi、RedBoot、BLOB以及U-Boot等。不同的Bootloader在支持的体系结构和种类上有所不同,本文主要是针对U-Boot进行分析与移植。U-Boot是德国DENX研究中心开发设计的,其对现在市场上主流的操作系统、CPU都能提供良好的支持,功能相当的强大。U-Boot的文件组织方式与Linux内核相同,将功能或者特性相同的源文件放在一起,方便对源文件的管理与阅读。……
