1 U-BOOT:
在U-Boot(UniversalBootloader)之前,先介绍一下Bootloader。简单的说,Bootloader就是在操作系统 内核运行之前的一段引导程序,类似于PC中的BIOS。通过它,可以完成对应硬件设备的初始化,并建立内存空间的映射图的功能,为最终调用系统内核做好准 备。
U-Boot是遵循GPL条款的开放源码项目,它不仅仅支持嵌人式Linux系统的引导,U-Boot中Universal的一层含义就是在于U- Boot支持多种嵌入式操作系统,就目前来看,U-Boot对Linux的支持最完善。另外一层含义则是U-Boot支持多种常用系列的处理器。
U-Boot支持的主要功能:系统引导;基本辅助功能(操作系统接口功能;可灵活设置、传递多个关键参数给操作系统;支持目标板多种存储方式;CRC32校验);设备驱动;上电自检功能;特殊功能(XIP内核引导)。
U-Boot移植主要分为两步:配置主板和设置Flash和SDRAM时序。
2 嵌入式Linux系统内核编译和移植
嵌入式Linux内核的编译都是通过make的不同命令实现的,一般分为3步:(1)内核配置。主要是用户用于为目标板选择处理器架构的选项。内核 支持4种方法的配置,虽然界面不同,但功能是一样的,其中make menuconfig使用最广泛;(2)建立依赖关系。在第一次编译时发生,产生".de-pend"文件,运行"make dep"即可;(3)建立内核。这里建立的是压缩的内核映像,使用"make zIm-age"或"make bzImage"。这样就完成了编译,下载在开发板即可。
一般来说与开发板通信有3种方式:网络下载(tftp,ftp等),串口下载和USB下载。用tftp下载,需要配置Linux下的tftp服务, 然后将PC和开发板直连线(非网线)即可;用串口下载,需要配置Linux下的串日通信工具Minicom。配置的主要是一些重要参数,如波特率。
但是只有系统内核是不够的,要使系统正常启动,还需要加载文件系统,所以需要制作文件系统。可以手工制作,但是工作量太大,一般是把现有文件系统加载到目标板,包括制作文件系统镜像和用NFS加载文件系统方法。
开发板上一般已经烧写好了嵌入式系统内核镜像,文件系统和前面讲的U-Boot,在掌握了烧写方法后,可以自己下载