Xilinx_Zynq_QSPI启动的编译、烧写、及配置过程步骤
来源:互联网 发布:window10无法连接网络 编辑:程序博客网 时间:2024/06/05 14:55
Xilinx_Zynq_QSPI启动的编译、烧写、及配置过程步骤
一、 交叉编译器:
使用xilinx提供的编译器arm-xilinx-linux-gnueabi- Version 4.6.1版本。
1. 添加交叉编译器的环境变量:
打开~/.bashrc文件,在最后添加两行(按实际情况添加具体路径)
export PATH=$PATH:~/xillinx/xilinx/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
保存推出,并使其立即生效: source ~/.bashrc
2. 检验交叉编译器安装是否成功:
在终端输入arm-xilinx-linux-gnueabi-gcc –v 察看版本号;
说明安装成功。
二、 U-boot相关:
使用从xilinx viki 上下载的u-boot-xilnx-xilinx-v2014.4.tar.gz版本。
1. 将u-boot解压,并进入到解压目录下。
tar –jxvf u-boot-xilnx-xilinx-v2014.4.tar.gz
cd u-boot-xilnx-xilinx-v2014.4
2. 配置u-boot
将u-boot配置SDRAM大小为 512M大小,添加QSPI支持。
vi u-boot-xilnx-xilinx-v2014.4/include/configs/zynq_zed.h
添加以下宏,之后保存退出。
3. 编译u-boot
如果第一步配置好了环境变量,直接执行:
make distclean
make zynq_zed_config
make
编译完成后,生成ELF格式的u-boot文件,将其重命名为”u-boot.elf”。
并注意生成mkconfig可执行文件,制作文件系统时会用到。
4. 制作BOOT.bin文件:
使用xilinx SDK 制作BOOT.Bin。(具体察看手册《Z-turn Board 可编程逻辑开发手册.pdf》第三章)。
三、内核kernel相关:
使用xilinx viki 上下载的linux-xlnx-xilinx-v2014.4.tar.gz 版本。
1. 将kernel解压,滨进入到解压目录下。
tar –jxvf linux-xlnx-xilinx-v2014.4.tar.gz
cd linux-xlnx-xilinx-v2014.4
2. 编译kernel
如果第一步配置好了环境变量,直接执行:
make distclean
make zynq_zed_config
make
编译完成后,在 arch/arm/boot 下生成uImage。
在arch/arm/boot/dts目录下生成zynq_zed.dts设备树文件。
四、设备树device tree相关:
使用编译kernel时候生成的zynq_zed.dts进行编译设备树文件 zynq_zed.dtb。
1. 配置dtc的环境变量
在kernel/scripts/dtc/下有dtc命令文件,使用这个命令可以生成.dtb文件。
打开~/.bashrc文件,在最后添加:(按实际情况添加具体路径)
export PATH=$PATH:~/xillinx/linux-xlnx-xilinx-v2014.4/scripts/dtc
2. 按需要改写.dts文件
本例希望在QSPI内进行如下分区,共五个分区,如图:
保存退出。
3. 生成.dtb文件
在arch/arm/boot/dts目录下
命令:dtc –I dts –O dtb –o devicetree.dtb zynq_zed.dts
生成devicetree.dtb文件。
五、文件系统ramdisk
六、 按照zynq_zed.dts中的分区,烧写BOOT.bin 、devicrtree.dtb、uImage、ramdisk:
1. 首先使用SD卡启动,进入u-boot命令行;
2. 开启TFTP服务器,使用tftp将BOOT.bin通过网络烧写道qspi的0x0地址:
tftp 0x800000 BOOT.bin //加载到内存
sf probe 0 0 0
sf erase 0x0 0x100000 //擦除1M空间
sf write 0x800000 0x0 0x100000 //写入qspi
3. 烧写 uImage
tftp 0x800000 uImage
sf erase 0x100000 0x600000
sf write 0x800000 0x100000 0x600000
4. 烧写 devicetree.dtb
tftp 0x800000
sf erase 0x700000 0x100000
sf write 0x800000 0x700000 0x100000
5. 烧写 ramdisk
tftp 0x4000000 ramdisk
sf erase 800000 1200000
sf write 0x4000000 800000 1200000
6. 烧写 fpga生成的 Micron_only_flash.bit程序
tftp 0x4000000 Micron_only_flash.bit
sf erase 1A00000 500000
sf write 0x8000000 1A00000 500000
七、 设置u-boot参数及启动方式:
将板卡启动方式改为qspi启动;
进入u-boot命令行:
输入命令:
setenv bootcmd 'sf probe 0 0 0 && echo qspi-bitstream is loading ... ... && sf read 0x800000 0x1A00000 0x500000 && fpga loadb 0 0x800000 0x400000 && echo uIamge is loading ... ... && sf read 0x2080000 0x100000 0x600000 &&echo deviceTree is loading ... ... && sf read 0x2000000 0x700000 0x100000 && echo ramdisk.image is loading ... ... && sf read 0x4000000 0x800000 0x1200000 && bootm 0x2080000 0x4000000 0x2000000'
saveenv
八、 重启板卡,顺利从qspi启动:
- Xilinx_Zynq_QSPI启动的编译、烧写、及配置过程步骤
- (android4.0)的编译及烧写的步骤
- 语言编译的步骤及装入执行过程
- DVSDK烧写启动步骤
- linux启动过程,及开机启动项的配置
- Linux 内核编译步骤及配置详解
- Linux 内核编译步骤及配置详解
- Orical配置的过程步骤
- linux编译及启动过程分析
- DEVKIT8500 DVSDK烧写启动步骤
- 微信小程序,配置服务器地址的步骤及配置过程中遇到的问题和解决方案
- Turboc C的编译步骤过程图
- C语言编译过程的步骤
- nand烧写分析/内核在启动过程中式如何将这个文件映射成/目录及各子目录的?
- AT91RM9200的U-BOOT启动烧写过程
- AT91RM9200的U-BOOT启动烧写过程【转】
- AT91RM9200的U-BOOT启动烧写过程
- AT91RM9200的U-BOOT启动烧写过程
- git 命令行实现建立本地库 第一次上传提交代码,生成分支,提交代码到该分支
- tomcat启动时卡死,报:WARN No appenders could be found for logger的解决方法
- html a标签-超链接中confirm方法使用介绍
- Python中的pickle--持久化对象
- python axis解析
- Xilinx_Zynq_QSPI启动的编译、烧写、及配置过程步骤
- C# 深度剖析try-catch-finally及其性能影响
- springAOP事物管理不生效原因总结
- 第十四周项目3-是否二叉排序树
- linux系统误操作执行:chmod -R 777 / 之后 修复方法
- 连通图与简单图
- python函数总结
- 第十四周项目4—二叉排序树
- GCC4.6升级到GCC4.8