实验三Bootloader编译与烧写一、实验目的1.熟悉UbuntuLinux主机环境2.熟悉u-boot编译方法二、实验环境预装Fedora10的pc机一台,CVT-A8系列实验箱,以太网线一根,串口线一根,SD卡与读卡器。三、实验步骤实验A:编译引导Linux系统的bootloader(u-boot.bin)1)解压U-Boot把u-boot-s5pv210.tar.gz拷贝到Linux主机的工作目录下,用命令解压u-boot-s5pv210.tar.gz,并进入U-Boot目录。#tarzxvfu-boot-s5pv210.tar.gz#cdu-boot-s5pv2102)清理U-Boot#makeclean3)配置U-Boot检查Makefile,配置正确的交叉编译路径,这里用的是工具连arm-none-linux-gnueabi-4)编译U-Boot在U-Boot的根目录下执行如下命令进行编译。#make编译完成,检验u-boot.bin是否已生成。实验B:SD卡烧写BoadLoader,通过SD卡烧写u-boot到flash。S5PV210支持多种不同的启动方式,包括SD、NandFlash、OneNand、USB、串口等,可以通过JP1跳线来切换CPU的启动方式。SD/MMC启动方式为:[1-6]=00110X,NAND(2KB-5cycle)启动方式为:[1-6]=00001X,其中X表示随意,1和0都可以。在NandFlash被擦除为空的时候,是不能从NandFlash启动的,这时就需要通过其他方法,把bootloader(u-boot)烧写到NandFlash。首先要制作一张可以启动的SD卡,让系统先从SD卡启动,SD启动后通过U-Boot的命令行把bootloader镜像烧写到NandFlash,然后就可以通过跳线切换到NandFlash启动了。1.制作SD卡启动:首先,格式化SD卡,SD启动制作是在linux系统下进行的,所以很重要的一点,就是Ubuntulinux能正确识别到SD卡(读卡器)。虚拟机右下角里,选中--USB2.0Device连接(与主机断开连接)(C),把SD卡从windows转移到虚拟机中。我们通过执行sd_fusing.sh脚本来把u-boot镜像写到SD卡,当然了,执行命令的时候需要用root权限,这个脚本主要的步骤是对SD卡进行分区、格式化成vfat格式、写入bl1和u-boot镜像。具体步骤如下:•进入u-boot源码目录下的的sd_fusing目录,这个u-boot是已经编译过的#cdsd_fusing•编译#make•制作SD启动,命令如下#./sd_fusing.sh/dev/sdb这样就制作好了一张可以启动的SD卡。2.拷贝镜像文件:SD卡启动制作好,下一步就是把镜像拷贝到SD卡,用于写进NANDFLASH。需先在SD卡的根目录下建立文件夹sdfuse,把u-boot.bin文件拷贝到这个目录下。可以在Windows下拷贝,也可以在Ubuntu拷贝。通过SD卡把u-boot镜像写到NANDFLASH。在超级终端界面上看到打印信息,当显示Hitanykeytostopautoboot:#时,快速按空格键,进入u-boot命令行。执行nandscrub,将nandflash数据清空并扫描坏块。#nandscrub执行sdfuse命令,把u-boot.bin烧写到NANDFLASH的bootloader分区。#sdfuseflashbootloaderu-boot.bin关闭电源后,设置JP1,使CPU从NANDFLASH启动。[1-6]=OFFOFFOFFOFFONX打开电源,按空格键进入u-boot命令行。至此Uboot烧写完成。四、实验要求1、要求随时观察记录实验结果;2、掌握配置和编译bootloader;3、掌握Bootloader烧写命令。五、实验报告要求1、每人一份实验报告;2、对bootloader的体会,它是嵌入式系统的基本部分,负责了系统的启动与初始化,熟悉理解它的工作原理与使用是进入嵌入式世界的一个前提。3、编译BOOTLOADER是非常基本的实验,如果要深入掌握嵌入式的开发,一定要能够熟练掌握此实验。六、思考题1、bootloader的作用?2、理解bootloader的启动过程?3、如何修改bootloader?