您的位置:首页 > 其它

Zedboard-制作uboot引导加载器【详细步骤】

2015-02-05 19:52 246 查看
在之前的文档中笔者已经写了有关内核源码树、根文件系统的定制笔记,但是工程中用的u-boot.elf文件还是例子中的,没有亲自动手编译过,心里总觉得不太明白,于是乎就下载了uboot的源码,仔细查看了有关README并成功的编译生成了启动引导加载程序u-boot.elf,下面是详细的步骤

1、下载uboot源码,https://github.com/Digilent/u-boot-digilent笔者用的源码是2012-04-01版本的,为了方便笔者将其共享出来。
2、解压缩源码,并进入该目录
3、查看README,可以看到,UBOOT的最简单的编译方法是按照对应的主板的config文件来make就可以了,而具体的目录是在include/configs,笔者切换工作目录到该文件夹下,查看是否有zynq相关配置文件,具体如图1所示:




图1
可以看到最后一个选项即为我们要找的头文件,使用vim打开该文件,具体如下所示(部分截图)




图2
可以看到这个文件里面定义了一些特定的参数,例如IP地址,内核大小、根文件系统大小等等,如果需要修改的话可以修改如下,为了和官方提供的uboot区分开,笔者修改了参数CONFIG_SYS_PROMPT的值,将其改为jefby-boot,下一步,我们开始配置uboot并编译生成u-boot.elf文件,
4、配置并编译
切换目录到第2步解压缩的目录下,输入如下所示命令
make zynq_zed_config
make
5、拷贝u-boot到U盘中,并打开ISE工程,使用XILINX PROGRAM工具制作BOOT.BIN文件。如图3所示:




图3
请注意烧写的顺序,制作完成后将生成的 u-boot.bin文件修改为BOOT.BIN文件,连同devicetree.dtb、ramdisk8M.image.gz、zImage一起拷贝到SD卡中,完成后使用串口和ZEDBOARD连接,并设置从SD卡启动,启动后在串口窗口中输入任意键,这样就可以手动来引导linux系统具体如图4所示:
在图4中可以看到,此时系统的CONFIG_SYS_PROMPT值已经是我们刚才设置的jefby-boot,输入mmcinfo查看mmc信息,接着输入如下命令:
fatload mmc 0 0x8000 zImage //从mmc的第一个FAT分区加载zImage到处理器的0x8000内存处
fatload mmc 0 0x1000000 devicetree.dtb//从mmc的第一个FAT分区加载devicetree.dtb到处理器的0x1000000内存处
fatload mmc 0 0x800000 ramdisk8M.image.gz //从mmc的第一个FAT分区加载ramdisk8M.image.gz到处理器的0x800000内存处
go 0x8000 //从内存的0x8000处开始运行linux内核
具体如图5所示:
完成后,可以看到已经成功启动了!具体如图6所示:说明我们制作的uboot引导加载器已经成功运行了!





图4



图5



图6

分类:记录-OpenHW12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: