当前位置:网站首页 > 技术博客 > 正文

uboot spl 编译



开发板:Zynq7030数据采集板
PC平台:Ubuntu-18.04 + MobaXterm
开发环境:Xilinx Vivado + SDK -18.3
交叉编译工具:arm-linux-gnueabihf-
学习目标:生成 BOOT.bin 文件



在第一篇文章Zynq-7000系列之linux开发学习笔记:开发前准备(一)中已经提供过u-boot的下载链接,这里再提供一下,方便中途看本文章的人进行下载,链接如下:
u-boot 2018.3 :https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2018.3
下载完u-boot源码后,将文件解压到相应目录,我这里还是解压到前几篇文章使用的目录。进到目录可以看到如下的文件结构:

 
  

在这里插入图片描述

首先我们要设置好交叉编译工具。这里是一个比较坑的一点,因为新版的SDK自动安装交叉编译工具,并且更新为 arm-linux-gnueabihf- ,已不是之前的 arm-xilinx-linux-gnueabi- 了。
这里一定要注意。使用旧版的软件时,比如2015.3左右版本的软件 ,就需要安装 arm-xilinx-linux-gnueabi- 交叉编译工具;而和我同样使用2018.3版本软件的同学,就可以不用管了,因为安装 Vivado时已经自动安装好了。现在有很多文章还都是旧的编译器,使用旧的命令编译就会显示没有命令。
这里先设置好环境变量,就可以看到有如下的交叉编译工具,操作如下:

 
  

接着我们需要修改一些文件:首先进入到configs目录,复制一份zynq_zc702_defconfig的配置,并改名为 zynq_zc703_defconfig ,再将里面内容的zc702也修改为 zc703 ,然后保存即可。

 
  

由于默认生成的u-boot默认使用 ramdisk 作为文件系统,而我们使用的是sd卡上的Linaro文件系统,所以还需修改一下 include/configs/zynq-common.h 这个文件,让u-boot在启动的时候不会试图去加载ramdisk image。该内容大概在271行:

 
  

修改完后,正常来说就可以进行make编译了。
但由于Zynq7030数据采集板采用的是Xilinx Zynq 7030 SoC,官方下载的u-boot源码里面并没有包含7030的配置文件以及设备树,所以才复制一份 zynq_zc703_defconfig 的配置。这里还需要再复制一份 zynq-zc703.dts 设备树文件,不然编译的时候会报错。这里要注意!!!
这里还要修改一下设备树 zynq-zc703.dts 里面的启动配置,默认是没有的。
需要自己添加 bootargs = “console=ttyPS0, root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0” ,具体的操作如下:


 
  

接下来回到u-boot主目录下,就可以开始进行编译了。

 
  

这时可能会出现如下的错误:
在这里插入图片描述
这个是openssl的依赖问题,安装支持即可。

 
  

安装完成后,再进行make就可以了。等待一段时间,就可以生成u-boot了,大功告成0.0.0.0
在这里插入图片描述
此时就可以在u-boot源码的主目录下看到生成的u-boot,然后将u-boot复制到和fsbl.elf同一个文件夹中,并改名为u-boot.elf。

 
  

至此,生成BOOT.bin所需要的三个文件: fsbl.elf fsbl_wrapper.bit u-boot.elf 已经准备好了。接下来只需在SDK中,将三个文件生成BOOT.bin即可。操作如下图所示:
在这里插入图片描述
添加三个文件,Create Image即可。
然后将生成的BOOT.bin复制到SD卡中,将SD卡插入到板子止,打开PC端的MobaXterm,设置好串口,然后连接USB线和电源线,即可看到如下输出信息:
在这里插入图片描述



  • 上一篇: python中jieba.cut
  • 下一篇: 什么是倒排索引
  • 版权声明


    相关文章:

  • python中jieba.cut2025-06-28 07:30:03
  • redis集群搭建和使用2025-06-28 07:30:03
  • python加密程序设计2025-06-28 07:30:03
  • lsp定义2025-06-28 07:30:03
  • ye.321.c2025-06-28 07:30:03
  • 什么是倒排索引2025-06-28 07:30:03
  • nginx配置访问静态文件2025-06-28 07:30:03
  • 路由交换技术详解与实践2025-06-28 07:30:03
  • 双向链表概念2025-06-28 07:30:03
  • web渗透技术入侵网站2025-06-28 07:30:03