草庐IT

基于petalinux2020.1的环境搭建及从QSPI启动流程

夕奕 2023-04-30 原文

基于petalinux2020.1的QSPI启动流程

  1. 开发工具
    Vivado2020.1
    Petalinux2020.1
    Ubuntu18.04.4(64bit)
    虚拟机vmware-16.2.3
    开发板:XC7Z020-CLG400
  2. Petalinux坏境搭建
  1. 用虚拟机安装完ubuntu18.04.4后,更换阿里云下载源:
    cd /etc/apt
    sudo gedit sources.list
    输入密码

sources.list文件打开后,把内容更换如下,保存退出;
deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
执行更新:apt-get update
2) 安装petalinux依赖库
sudo apt-get install -y python tofrodos iproute2 gawk xvfb gcc git net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen
3) 安装TFTP工具
sudo apt-get install tftpd tftp openbsd-inetd
sudo gedit /etc/inetd.conf
在文本上添加:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot

sudo mkdir /tftproot
sudo chmod 777 /tftproot
sudo /etc/init.d/openbsd-inetd restart
sudo netstat -an | more | grep udp
出现如下所示即表示TFTP安装成功:

  1. dash改为bash
    sudo dpkg-reconfigure dash
    弹出的界面选择“否”;禁用dash

sudo ls -al /bin/sh
看到如下所示表示成功:

  1. 把petalinux-v2020.1-final-installer.run文件拷贝到/opt/Xilinx/p201(根据自己的安装位置调整)下,输入
    ./ petalinux-v2020.1-final-installer.run即开始安装
    安装过程中,需要查看证书,共三次
    操作:entry—>输入退出命令 :q—>点确定:y
    指导安装完成。
  2. 安装完成后,设置环境变量
    source /opt/xilinx/p201/settings.sh
    使用 echo $PETALINUX 命令查询,成功显示petalinu路径证明环境变量设置成功,可以输入petalinux命令进行开发了
  1. Petalinux开发从qspi_flash启动
  1. 先准备xsa文件,vivado设置如下(仅用了uart,ttc,qspi):


    Qspi时钟改为150M;

我的DDR型号如下:

最后,编译完成后,把生成的xsa文件拷贝到虚拟机
2) 回到虚拟机,进入petalinux软件目录:cd /opt/xilinx/p201
3) 新建名为zynq_qspi的工程:petalinux-create -t project --template zynq --name zynq_qspi
4) 进入工程所在位置:cd /opt/xilinx/p201/zynq_qspi;把xsa文件拷贝到此;
5) petalinux-config --get-hw-description 导入硬件配置
6) uboot,kernel改为自动config

flash分区:默认分区有问题,系统启动不了,通过分析u-boot-zynq-scr.bbappend文件后更改如下:

  1. 配置uboot
    petalinux-config -c u-boot

    进入 ARM architecture
    

Boot script offset 改为:0X1F00000

保存,退出
8) 配置内核:petalinux-config -c kernel
9) 配置根文件系统:petalinux-config -c rootfs
10) 编译:petalinux-build
11) 编译完成后打包:petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot --kernel –force
打包 需要进入 images/linux目录
12) 把生成的BOOT.bin文件和boot.scr拷贝到windows
13) 注意:petalinux2020.1后必须要boot.scr文件引导uboot
4. 下载到QSPI_FLASH

  1. 先制作一个仅用于引导下载的fsbl文件,这里命名为fsbl_downused.elf;
    打开vitis2020.1,新建一个fsbl工程,把启动模式手动改为JTAG_MODE,生成elf文件(仅供下载flash使用,这样下载时不用更改启动模式为jtag)如下所示:

  2. 打开SDK(我使用的是2017.4),先从0地址下载bin文件,再从0x1f00000地址下载boot.scr文件;
    这里用SDK下载而不用vitis是因为发现采用vitis下载时,一直下载不成功;


  1. 下载成功后,把启动模式设置为qspi启动,上电linux成功启动,启动界面如下:
    用户名:root
    密码:root


有关基于petalinux2020.1的环境搭建及从QSPI启动流程的更多相关文章

  1. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  2. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  3. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  4. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  5. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  6. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  7. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  8. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  9. ruby-on-rails - ruby gem如何在rails环境下工作 - 2

    我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge

  10. ruby-on-rails - 我需要一个真正的 UNIX RoR 开发环境 - 2

    从一开始,我就是一个Windows高手。我从MS-DOS开始。我安装了Windows2.1以及此后的所有Windows。现在,我家里有10台不同的Windows机器在运行,从Windows7Ultimate到各种版本的WindowsServer。我还没有完成Windows8,也不想去那里。我在服务器和各种软件方面都有UNIX经验,但它并不是我的首选环境。但是,我想我正在转换。我试图假装使用Cygwin和MSYS在Windows下运行UNIX。我的目的是搭建一个开发环境。两者都让我失望了。我花了比开发更多的时间来解决一系列技术问题。这是NotAcceptable。到目前为止,我的Ruby

随机推荐