一.环境需要开发工具和软件包
- 开发工具: vivado 2015. 2
- 软件包
- arm-linux-gcc4.4.3
- uboot
- openssl
- sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.bin
- linux-digilent-digilent-v3.6.tar.gz
下载地址:链接:https://pan.baidu.com/s/1_jHvAqTAI1HOw_b9OW1mWg 密码:d3jx
二. 编译UBOOT
- 安装 openssl
sudo apt-get install libssl-dev
- 安装gcc编译器
- 解压文件夹
tar -xvf arm-linux-gcc-4.4.3-20100728.tar.gz
- 环境变量
将gcc的bin文件路径添加到PATH
gedit ~/.bashrc
# 将下面信息加入文件中 /home/jinshan/桌面/arm/lab10/ 根据自己路径修改
export PATH=/home/jinshan/桌面/arm/lab10/arm-2013.11/bin:$PATH
# 环境变量生效
source ~/.bashrc
- 查看gcc版本
arm-none-eabi-gcc -v
- 安装 sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.
# 授予执行权限, 安装时候全部默认安装,无需修改
chmod 777 sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.bin
./sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.bin
- 编译uboot生成u-boot
cd u-boot-xlnx-master
# 新建运行脚本
gedit install.sh
# 将下列信息添加到里面
CROSS_COMPILE=arm-none-eabi-
export PATH=路径:$PATH # 路径为sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.bin的所在文件目录
make ARCH=arm CROSS_COMPILE=arm-none-eabi- zynq_zed_config
make ARCH=arm CROSS_COMPILE=arm-none-eabi-
# 运行脚本install.sh
sh install.sh
- 编译成功会生成u-boot可执行文件, 修改位u-boot.elf文件名
mv u-boot u-boot.elf
接下来在vivado的SDK上生成UBOOT.BIN(省略....)
二.裁剪移植LINUX
- 解压linux-digilent-digilent-v3.6.tar.gz
tar -zxvf linux-digilent-digilent-v3.6.tar.gz
- 编译系统
cd linux-digilent-digilent-v3.6
# 新建install.sh
gedit install.sh
#加入下面内容
CROSS_COMPILE=arm-none-eabi-
export PATH=路径:$PATH # 路径为sourceryg++-2016.11-64-ia16-elf-x86_64-linux-gnu.bin的所在文件目录
make ARCH=arm CROSS_COMPILE=arm-none-eabi- digilent_zynq_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-eabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-none-eabi-
# 保存install.sh文件后,执行它,进行编译
sh install.sh
编译成功在boot文件夹下生成Image文件和zImage镜像文件
- 生成设备树DTB文件
#修改arch/arm/boot/dts/digilent-zed.dts文件chosen内容为
chosen {
/*bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";*/
bootargs = "console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M init=/init earlyprintk rootwait devtmpfs.mount=1";
linux,stdout-path = "/axi@0/serial@e0001000";
};
# 修改后执行,生成设备树文件devicetree_ext3.dtb
./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ext3.dtb arch/arm/boot/dts/digilent-zed.dts
最后将启动文件BOOT.BIN, linux内核镜像zImage, 设备树DTB文件和文件系统,拷贝到SD卡,插到实验板。
JP5配置为SD
串口设置为波特率115200,8位停止位,1位停止位,无校验位和数据流控制。通过串口终端查看RAMDISK启动的信息。