第6章 构建嵌入式Linux开发平台;6.1 嵌入式交叉编译环境搭建;嵌入式交叉编译;嵌入式交叉编译环境模型;交叉编译器的安装过程

1)在/usr/local/目录下新建arm目录,并进入该目录。[root@vm-dev local]# mkdir arm[root@vm-dev local]# cd arm 2)使用cp命令,把cross_3.3.2.tar.bz2拷贝到新建立的/usr/local/arm目录下。 3)解压交叉编译器安装文件(cross_3.3.2.tar.bz2)。 [root@vm-dev arm]# tar -jxvf cross_3.3.2.tar.bz2

说明:上述命令执行完毕,在当前目录下将会增加文件夹3.3.2,这就是交叉编译器所在目录。; 4)增加编译器路径。 [root@vm-dev arm]# vi /etc/profile......#Path manipulationIf[ `id-u`=0 ]; thenpathmunge /sbinpathmunge /usr/sbinpathmunge /usr/local/sbinpathmunge /usr/local/arm/3.3.2/binFi 说明:编译路径保存在/etc/的profile文件中,因此打开的是profile文件,并在路径字段添加上/3.3.2/bin,示例中的下划线语句。也可以使用环境变量添加编译器路径。;6.2 U-Boot移植 ;6.2.1 引导系统简介;引导系统stage1实现的功能

(按先后顺序): 硬件设备初始化; 为加载引导系统的stage2准备RAM空间; 拷贝引导系统的stage2程序到RAM空间中; 设置好堆栈; 跳转到stage2的C程序入口点。;引导系统stage2实现的功能

(按先后顺序):初始化本阶段要用到的硬件设备;检测系统内存映射(memory map);将操作系统内核映像和根文件系统映像从Flash读到RAM空间中;为操作系统内核设置启动参数;调用操作系统内核。; 由于引导系统是完全依赖于硬件实现的,不同类别的处理器有不同的汇编语言,不同的开发平台有不同的硬件资源。因此,在嵌入式世界里建立一个通用的Bootloader几乎是不可能的。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来指导特定的Bootloader设计与实现。;Bootloader共性分析;6.2.2 U-Boot概述;1.U-Boot的主要特点

开放源码;支持多种嵌入式操作系统内核:如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;支持多个处理器系列:如PowerPC、ARM、x86、MIPS、XScale;较高的可靠性和稳定性;高度灵活的功能设置,适合U-Boot调试、不同操作系统引导要求、产品发布等;丰富的设备驱动源码???如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;较为丰富的开发调试文档与强大的网络技术支持。;2.U-Boot主要目录结构

board:目标板相关文件,主要包含SDRAM、FLASH驱动等; common:独立于处理器体系结构的通用代码; cpu:CPU相关文件; driver:通用设备驱动,如CFI FLASH驱动; doc:U-Boot的说明文档; examples:可在U-Boot下运行的示例程序; lib_xxx:处理器体系相关的库文件; net:与网络功能相关的文件目录; post:上电自检文件目录; rtc:RTC驱动程序; tools:用于创建U-Boot S-RECORD和BIN镜像文件的工具;;3.U-Boot主要功能

系统引导:支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统。 基本辅助功能:强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统;支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好。 设备驱动:串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持。 上电自检功能:SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号。;6.2.3 U-Boot移植过程;2.建立板级支撑包; U-Boot源码中,专门为S3C2410处理器的开发板建立有一个目录,名为smdk2410,并提供相关的文件支撑。 U-Boot为每个开