【工作笔记】zynq 7035移植linux系列1——linux环境的搭建和移植

【详细步骤】

方式1:利用petalinux定制linux环境,并从SD卡启动

(1)在windows下利用vivado进行FPGA部分的硬件开发,编译生成.bit文件,并导出硬件信息.hdf文件,该文件是petalinux要使用的硬件文件;

(2)将vivado工程下的.sdk目录复制到linux主机中;

(3)设置petalinux环境变量和vivado环境变量(在这里之前需要安装Linux版本的vivado和petalinux):

        source /opt/pkg/petalinux/settings.sh 

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

(4)利用petalinux-creat创建一个新的petalinux工程并进入新建的petalinux工程目录中,并设置该petalinux的硬件信息来自于meg_7035.sdk目录下:

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

        在当前目录下会自动生成一个ax7035_meg_qspi目录:

        cd ax7035_meg_qspi
        petalinux-config --get-hw-description ../meg_7035.sdk   

        会跳出配置界面,配置启动方式为从SD卡启动(在 Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings ---> boot image settings ---> image storage media 选项中选择 primary sd设置boot从sd卡启动,以及Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings --->  kernel image settings ---> image storage media 选项中选择 primary sd,设置内核从sd卡启动,那根文件系统和设备树呢?),保存退出配置界面,等待较长时间:

        之后利用命令配置内核和根文件系统:

        petalinux-config -c kernel,跳出配置界面默认配置保存退出即可;

        petalinux-config -c rootfs,跳出配置界面默认配置保存退出即可;

(5)利用petalinux-build命令编译uboot、内核、根文件系统和设备树;

(7)利用petalinux-package命令打包生成BOOT.bin,打包命令为:

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

(8)将工程目录 images -> linux 目录中的 BOOT.BIN 和 image.ub 复制到 sd 卡,复制前最好先格 式化一下 sd 卡(格式设置为FAT32),然后插到开发板上,开发板设置到 sd 卡启动:

 (9)打开串口,启动开发板:

 (10)利用NFS将linux主机的共享目录挂载到板子的linux系统中,在共享目录下放好samp.elf文件,该文件在.sdk/samp/Debug下,利用./samp.elf即可运行arm端的程序。

        1)将开发板的网线与Linux主机相连,查看linux主机IP地址

        2)在开发板的Linux环境中,利用以下命令临时更改IP地址和掩码:

        ifconfig eth0 192.168.4.121 netmask 255.255.255.0

        3)在linux主机中ping开发板的IP地址,ping 通后将linux主机的共享目录work挂载到开发板的/mnt目录中:

         mount -t nfs -o nolock 192.168.4.10:/home/daiyan/work /mnt

        4)将编译好的可执行程序放在共享目录中,在串口终端中进入/mnt目录找到该可执行文件执行即可。

方式2:利用petalinux定制linux环境,并从QSPI启动

前三步与方式1相同。

(4)利用petalinux-creat创建一个新的petalinux工程并进入新建的petalinux工程目录中,并设置该petalinux的硬件信息来自于meg_7035.sdk目录下:
     petalinux-create --type project --template zynq --name ax7035_meg_qspi
     cd ax7035_meg_qspi
     petalinux-config --get-hw-description ../meg_7035.sdk 会跳出配置界面,配置boot和内核启动方式为falsh,保存退出配置界面需要较长时间

(5)利用命令配置内核和根文件系统
     petalinux-config -c kernel
     petalinux-config -c rootfs

(6)利用petalinux-build编译uboot、内核、根文件系统和设备树;

(7)对于QSPI-FLASH启动方式下,通过petalinux-package打包时将内核一起打包,打包命令为(比上面多一个--kernel):
     petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --kernel --force

(8)启动开发板,设置启动方式为JTAG,通过vivado或者SDK将生成的BOOT.BIN和zynq_fsbl_flash.elf(官方提供的)文件一起烧写到QSPI FLASH中;烧写后,设置开发板启动方式为QSPI,上电后可以看到Linux环境已启动。

(9)与上述方式1相同的挂载方式将可执行程序进行挂载,并运行程序

另外:

(1)若想要保留之前的petalinux工程,不想新建一个,可以把老的工程复制一份,将老工程中的project-spec、.petalinux、config.project 复制到一个新的目录,做为一个新的 Petalinux 工程;

(2)再把 images/linux 目录下的 bit 文件也复制到新的工程目录下,用于合成带 PL 配置的 BOOT

(3)设置环境变量:

        source /opt/pkg/petalinux/settings.sh

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

(4)按照上述步骤配置petalinux,包括启动方式、boot、内核、根文件系统和设备树,保存配置退出,编译,最后将BOOT.BIN烧写到QSPI FLASH内即可。

方式3:利用petalinux定制linux环境,并从QSPI和EMMC启动

【相关知识】

1.综上所述,PL端的逻辑在整个linux环境搭建时就确定,硬件信息决定了linux系统的环境搭建,linux移植好后,编写硬件外设驱动程序,在linux主机上进行ARM端的Linux C语言程序开发,最后放在板子上运行。

### 回答1zynq-linux移植学习笔记应包含以下内容: 1. 对zynq架构硬件资源的理解,包括PSPL部分的特点。 2. 如何使用Xilinx SDK来编译配置u-bootLinux内核。 3. 如何在硬件平台上运行调试Linux系统。 4. 怎样在Linux系统中配置使用各种硬件资源,如DMA、Ethernet、Flash等。 5. 如何在Linux系统中移植运行应用程序,并与硬件资源进行交互。 6. 如何进行系统优化资源管理,以提高系统性能稳定性。 ### 回答2: Zynq是一款Xilinx公司开发的一种嵌入式系统芯片,其使用了双核Cortex-A9处理器可编程逻辑器件(FPGA)的组合。移植LinuxZynq芯片中,可以使其具备无限的扩展能力,极大地拓展了其应用领域,因此掌握Zynq-Linux移植技术是非常重要的。 Zynq-Linux移植分为四个主要步骤: 第一,准备工作移植前,需要确认硬件平台是否支持Linux运行,并且需要对硬件进行配置,最好使用Zynq开发板的官方配置; 第二,内核移植 内核移植是整个移植过程中最关键的一步。需要根据硬件平台的特性对内核进行选择配置。可以从内核源代码库中获取内核代码,然后进行交叉编译。移植内核的过程中需要注意内核配置参数的设置,同时也要确保内核模块驱动程序的编写。 第三,文件系统移植移植Linux的过程中,文件系统也是非常重要的。可以使用开发板官方Linux镜像,也可以自己编译镜像。移植文件系统还涉及到root文件系统的配置、挂载方式、网络配置各种服务的配置等问题。 第四,驱动移植 驱动程序是连接硬件软件的关键部分,需编写相应的驱动程序来实现对硬件的控制。移植驱动程序的过程中需要关注各种硬件接口设备驱动API的使用,确保驱动程序与硬件配合良好。 总结来说,Zynq-Linux移植技术的掌握需要具备较强的Linux基础知识、驱动开发经验交叉编译工具链的使用能力。同时,还需要有耐心细心,对每个步骤进行仔细的分析处理。 在学习中,需要结合实际开发项目,多进行实践操作才能更好地掌握Zynq-Linux移植技术,为后续项目的开发应用提供更好的支持。 ### 回答3: Zynq-7000系列是一种由Xilinx开发的SoC(系统级芯片),它将双ARM Cortex-A9处理器可编程逻辑(FPGA)集成在一起。这使得开发人员可以使用硬件加速加速器来加速运行在Linux上的各种应用。然而,实现这个目标需要进行移植。 在开始Zynq Linux移植学习笔记之前,需要一些基本的知识。首先,需要了解Linux内核的基本工作原理Linux驱动程序的编写技术。然后,需要了解FPGASoC体系结构。 在开始移植之前,需要为SoC开发板选择正确的Linux发行版。这通常需要考虑处理器体系结构,内存大小设备驱动程序的可用性。另外,还需要考虑是否需要自定义内核或驱动程序以满足应用程序的需求。 接下来,需要编写设备树文件(DT)来描述SoC架构。设备树文件是一种描述硬件配置信息的特殊语言。它会告诉内核有哪些设备可用以及如何访问这些设备。 接下来,需要配置Linux内核以支持Zynq-7000处理器。这可能包括启用适当的内核配置选项,编写设备驱动程序以及配置启动过程。 最后,需要启动Zynq板并验证Linux系统稳定运行。这些步骤包括在启动过程中将设备树文件加载到内存中,以及启动用户空间应用程序。 总之,移植Zynq Linux是一项复杂的任务,需要广泛的专业知识技术。但是,它可以为开发人员提供强大的硬件加速支持,使他们能够加速处理一系列计算密集型应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值