zynq虐我千百遍——第1篇 Linaro之BOOT.bin

需要准备的一些设备:

        USB Hub

        SD卡(最好8G以上)

        zynq开发板

本教程需要的软件材料有:
        Uboot xilinx-v2015.1源码
        FPGA的Vivado硬件工程,并已生成bit文件

操作平台: win7+VMareWorkstation(ubuntu14.04)

SD卡分区&格式化

本节介绍如何将SD卡分区并格式化。

注意:SD卡格式化后,Windows操作系统将只能识别SD卡的FAT分区,而识别不了EXT4分区

将SD卡插入Linux电脑(虚拟机系统需要将其挂载进虚拟机)。

在/dev目录下找到SD卡设备,比如/dev/sdX(这可能是sdb,或sdc,sdd等,在部分内建读卡器的电脑中,该设备可能为/dev/mmcblkX,通过df命令可以查看所有挂载的系统,一般而言,外部存储设备会挂在在/media目录下或者/mnt目录下。)

使用如下命令卸载分区(注意在df里面挂在了几个分区就卸载几个分区,下面的示例中只卸载了第一分区)

bash$ sudo  umount /dev/sdX1

输入以下命令进入分区工具(一般而言,请不要对sda进行分区,这回破坏你的系统!):

bash$ sudo fdisk  /dev/sdX

用m命令可以查看该工具的命令,之后请按顺序使用如下命令:

o,清除该SD卡的原有分区

n,建立第一分区,之后程序会询问:

是否建立主分区?(回车,默认为是)

分区号?(回车,默认为最小分区号)

分区起始扇区?(回车,默认最小起始扇区)

分区末尾扇区?(输入“+512M”,回车,创建一个512M的分区)

n,建立第二分区,之后程序会询问:

是否建立主分区?(回车,默认为是)

分区号?(回车,默认为最小分区号)

分区起始扇区?(回车,默认最小起始扇区)

分区末尾扇区?(回车,默认将剩余的空间全部给第二分区)

w,将之前对SD卡的操作写入SD卡

查看/dev目录下是否有/dev/sdX1和sdX2设备,如果没有就将SD卡退出重插就有了。之后输入命令:

bash$ sudo mkfs.msdos /dev/sdX1

bash$ sudo mkfs.ext4 /dev/sdX2



下载dosfstools,重定义卷名,输入如下命令: 

bash$ sudo apt-get install dosfstools
bash$ sudo dosfslabel /dev/sdX1 BOOT
bash$ sudo e2label /dev/sdX2 FS

重新插拔SD卡,在/media目录下会自动挂在BOOT和FS两个分区

BOOT.bin构建

本节介绍如何构建BOOT.bin

首先去github下载uboot xilinx-v2015.1源码 

下载地址:点击打开链接

解压在工作目录

cd u-boot-xlnx-xilinx-v2015.1/
make ARCH=arm zynq_zybo_config

(如果你的开发板是zed请使用zynq_zed_config

修改uboot环境变量sdboot

vim include/configs/zynq-common.h



用vim搜索sdboot所在位置,修改为

"sdboot=if mmcinfo; then " \
"run uenvboot; " \
"echo Copying Linux from SD to RAM... && " \
"load mmc 0 ${kernel_load_address} ${kernel_image} && " \
"load mmc 0 ${devicetree_load_address} ${devicetree_image} &&" \
"bootm ${kernel_load_address} - ${devicetree_load_address};"\
"fi\0" \


make ARCH=arm
cp u-boot   /[你需要拷贝的目录]/u-boot.elf

打开已经生成bitstreamvivado工程

Vivado Menu: File > Export > Export hardware...
Vivado Menu: File > Launch SDK
SDK Menu: File > New > Application Project
zynq虐我千百遍——第1篇 Linaro之BOOT.bin_第1张图片

zynq虐我千百遍——第1篇 Linaro之BOOT.bin_第2张图片

右键fsbl_zybo工程

zynq虐我千百遍——第1篇 Linaro之BOOT.bin_第3张图片
点击Create Image生成BOOT.bin

将BOOT.bin拷入SD卡测试
zynq虐我千百遍——第1篇 Linaro之BOOT.bin_第4张图片


你可能感兴趣的:(zynq虐我千百遍——第1篇 Linaro之BOOT.bin)