草庐IT

ZYNQ7045从flash启动linux

Yan_uuu 2025-02-18 原文

1.准备工具

自行安装linux版本的vivado,和xilinx开发环境。linux版本我选择的是Ubuntu18.04,ubuntu系统下xilinx开发环境我安装的是vivado 2018.3(安装时候要记得勾选SDK),安装好vivado后也就包含了xilinx的ARM部分交叉编译器。

2.Petalinux 工具安装

petalinux 并不是一个特殊 Linux 内核,而是一套开发环境配置的工具,降低 uboot、内核、根文件系统的配置的工作量,可以从 Vivado 的导出硬件信息自动完成相关软件的配置,安装版本为 petalinux-v2018.3

注:vivado配置zynq硬核配置部分参考ZYNQ7045从flash启动linux vivado配置

步骤1:安装必要的库,执行命令

sudo apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386 libssl-dev flex bison chrpath socat autoconf libtool texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev screen pax

步骤2:安装Petalinux
1.先下载自己需要的Petalinux版本,Petalinux下载版本选择链接

2.进入PetaLinux - Installation Files - 2018.3 选项界面下

点击PetaLinux 2018.3 Installer(TAR/GZIP-6.17G)下载

需要AMD账号,自行注册完成后,填写必要信息,即可下载

3.将下载的
petalinux-v2018.3-final-installer.run
文件迁移到ubuntu18.04系统下,执行命令
(注:<your_user_name>就是你ubuntu的用户名)

sudo chmod +x petalinux-v2018.3-final-installer.run
sudo mkdir -p /opt/pkg/petalinux
sudo chown <your_user_name> /opt/pkg/
sudo chgrp <your_user_name> /opt/pkg/
sudo chgrp <your_user_name> /opt/pkg/petalinux/
sudo chown <your_user_name> /opt/pkg/petalinux/
sudo ./petalinux-v2018.3-final-installer.run /opt/pkg/petalinux/

执行上述命令之后,petalinux开始安装,根据提示,按回车查看协议内容后,按 q 退出协议内容,按 y 同意协议内容,在安装过程中会弹出 License,按“q”退出,然后按“y”同意,至此,Petalinux安装完成。

3.使用 Petalinux 定制 Linux 系统

首先FPGA工程师根据Vivado 软件把硬件信息配置完成编译导出(内存,时钟,qspi,需要的基本外设等等)成工程文件,然后 Petalinux 根据这些信息来配置 uboot,内核、文件系统等

步骤1:搭建工程环境

1.在 vivado 导出硬件配置的工程目录下会有一个***.sdk** 的目录,下面有一个“design_1_wrapper_hw_platform_0”文件夹,这个文件夹就包含了 petalinux 使用的文件

2.把“design_1_wrapper_hw_platform_0”目录复制到ubuntu18.04自己的工程目录下

3.设置 petalinux 环境变量,执行命令

source /opt/pkg/petalinux/settings.sh


4.设置 vivado 环境变量,执行命令

source /opt/Xilinx/Vivado/2018.3/settings64.sh

5.创建一个 petalinux 工程,工程名自己命名即可,我自己工程创建一个名为petlinux_config的工程,执行命令

petalinux-create --type project --template zynq --name petalinux_config

步骤2:配置linux系统启动参数

1.进入自己的工程目录下,配置硬件信息,“…/design_1_wrapper_hw_platform_0”目录就是 vivado 导出的硬件信息

cd ./petalinux_config
petalinux-config --get-hw-description ../design_1_wrapper_hw_platform_0

弹出linux配置窗口,进行配置 petalinux 工程,下图的 Subsystem AUTO Hardware Settings 可以设置系统分配大小和启动方式

2.选择进入Subsystem AUTO Hardware Settings 菜单选项,在选择Flash Settings进行分配linux系统boot,kernel的所占空间大小

进入Flash Settings后,根据自己的flash大小和FPGA工程师给分配的boot和kernel大小来填写转换的十六进制数值(我分配的Boot是5Mb,kernel是10Mb: 5x1024x1024转换十六进制为0x500000,10x1024x1024转换十六进制为0xA00000)

3.返回进入Subsystem AUTO Hardware Settings 菜单选项,再选择 Advanced bootable images storage Settings 选项进入配置菜单

分别进入boot image settingsu-boot env partition settingskernel image settings 选择启动方式为flash


4.全部配置完成之后,保存设置

然后退出配置界面,等待编译完成

步骤3:配置linux内核

1.配置linux内核,执行命令,等待kernel配置界面出现

petalinux-config -c kernel


2.在选项Device Drivers 配置驱动,选择进入配置菜单选项,然后选择 Network device support 进入配置菜单选项,再选择PHY Device support and infrastructure 进入配置菜单选项,选中 Micrel PHYs,按 “Y” 键表示加载此选项


然后保存并退出,等待编译完成

步骤4:配置根文件系统

1.配置linux文件系统,执行命令,等待文件系统配置界面出现

petalinux-config -c rootfs


根据自己需求更改配置,此处我没做修改,保存退出等待编译完成即可

步骤5:编译 uboot、内核、根文件系统、设备树等,执行命令,等待编译完成即可

petalinux-build

步骤6:生成Boot 文件,执行命令
备注:可在自己工程目录下的design_1_wrapper_hw_platform_0文件夹下复制design_1_wrapper.bit文件到petalinux_config/images/linux

petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/design_1_wrapper.bit --u-boot --force

4.烧录linux系统配置文件,启动板卡

编译完成后生成配置文件,将自己工程文件目录下petalinux_config/images/linuxBOOT.BINimage.ubzynq_fsbl.elf发送给FPGA工程师,基于vivado使用JATG连接自己的板卡,将相应的文件烧录到flash即可

烧录完成后,连接rs232调试串口,打开串口终端,重新上电启动自己的zynq7045-ps端linux系统

有关ZYNQ7045从flash启动linux的更多相关文章

  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. 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

  3. ruby-on-rails - 在 Flash 警报 Rails 3 中显示错误消息 - 2

    如果我在模型中设置验证消息validates:name,:presence=>{:message=>'Thenamecantbeblank.'}我如何让该消息显示在闪光警报中,这是我迄今为止尝试过的方法defcreate@message=Message.new(params[:message])if@message.valid?ContactMailer.send_mail(@message).deliverredirect_to(root_path,:notice=>"Thanksforyourmessage,Iwillbeintouchsoon")elseflash[:error]

  4. ruby - 使用 Capistrano 启动 sidekiq - 2

    我想用Capistrano启动sidekiq。下面是代码namespace:sidekiqdotask:startdorun"cd#{current_path}&&bundleexecsidekiq-c10-eproduction-Llog/sidekiq.log&"pcapture("psaux|grepsidekiq|awk'{print$2}'|sed-n1p").strip!endend它执行成功但sidekiq仍然没有在服务器上启动。输出:$capsidekiq:starttriggeringloadcallbacks*2014-06-0315:03:01executing`

  5. ruby-on-rails - fastercsv 的 Rails 3 服务器启动问题 - 2

    我有一个正在升级到Rails3的Rails2.3.5应用程序。我做了所有我需要做的升级以及当我使用启动Rails服务器时要做的事情railsserver它给了我这个PleaseswitchtoRuby1.9'sstandardCSVlibrary.It'sFasterCSVplussupportforRuby1.9'sm17nencodingengine.我正在使用ruby-1.9.2-p0并安装了fastercsv(1.5.3)gem。在puts语句的帮助下,我能够追踪到错误发生的位置。我发现执行在这一行停止了Bundler.require(:default,Rails.env)if

  6. 电脑启动后显示器黑屏怎么办?排查下面4个问题,快速解决 - 2

    电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑

  7. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  8. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  9. 如何判断oracle是否启动及启动oracle数据库 - 2

    plsql连接Oracle超时,完犊子了肯定是服务器断电了。得马上检查Oracle服务器状态1、检查数据库是否启动su-oracle切换到Oracle用户,输入sqlplus/assysdba显示连接状态。如果末尾显示的状态是Connectedtoanidleinstance.证明未启动2、启动数据库startup启动数据库,末尾出现Databaseopened说明数据库启动成功3、查看数据库监听是否正常先quit;断开Oracle连接,使用lsnrctlstatus查看监听状态,如果出现TNS-开头的Nolistener、Connectionrefused等错误,说明监听未启动4、启动数据库

  10. jquery - Rails 如何创建 Jquery flash 消息而不是默认的 Rails 消息 - 2

    我想在页面顶部创建自定义Jquery消息而不是标准RailsFlash消息。我想在我的投票底部附近创建一条即时消息。我的Controller:defvote_up@post=Post.find(params[:id])current_user.up_vote(@post)flash[:message]='Thanksforvoting!'redirect_to(root_path,:notice=>'Takforditindlæg,deternuonline!')rescueMakeVoteable::Exceptions::AlreadyVotedErrorflash[:error]

随机推荐