【详细步骤】

方式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语言程序开发,最后放在板子上运行。

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

  1. 【Linux系列】Linux之CentOS操作系统日常问题(二):catalina.out占用内存大的问题

    热门系列: [Linux系列]Linux实践(一):linux常用命令 [Linux系列]Linux实践(二):CentOS系统中搭建java开发环境与部署web项目 [Linux系列]Linux实践 ...

  2. 【Linux系列】Linux查看日志常用命令大全,再也不怕不会看日志啦

    热门系列: [Linux系列]Linux脚本:定时任务批量移动指定文件至另一目录!想学吗?我教你啊 [Linux系列]Linux实践(一):linux常用命令 [Linux系列]Linux实践(二): ...

  3. Linux系统中Java环境的搭建及JDK的安装(附上每一步操作截图及说明)【一看就懂】

    开门见山 第一步: 官网下载你所要使用的jdk版本:或本地已经存在的Linux系统的jdk压缩包.(这里以jdk1.8为例) 将此压缩包按如下图所示操作(1.进入/opt/文件 2.将压缩包拖入此处) ...

  4. Linux 系列之一 Linux 简介

    1 Linux概述 1.1 操作系统简介 1.1.1 为啥需要操作系统呢 ? ​ 计算机是一台机器,它按照用户的要求接收信息.存储数据.处理数据,然后再将处理结果输出(文字.图片.音频.视频等).计算 ...

  5. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  6. Linux下Minigui开发环境的搭建(PC+S3C2440

    花了两天时间终于把Minigui的开发环境搭建好了,遇到了很多问题,看了很多人的博客,对我的启发很大.关键是以前偷懒装redhat的时候为了省空间,很多库文件都没安装搞的自己很狼狈,不过也由于这个原因 ...

  7. Linux下Java开发环境的搭建Tomcat6+jdk6+eclipse3.5.2+Myeclipse9.0+mysql5.1.47

    Tomcat6+jdk6+eclipse3.5.2+Myeclipse9.0+mysql5.1.47 1.JDK的安装:usr/java/jdk1.6.0_25 下载:jdk-6u25-linux-i ...

  8. linux 下 eclipse 开发环境的搭建

    在windows平台下开发习惯了各种ide,不得不承认ide给我们开发带来的便捷.于是希望在linux平台下也希望找到一个合适的ide.这就想起来了eclipse具有跨平台性. 那么就开始搭建环境吧. ...

  9. Linux的安装与Linux下PHP开发环境的搭建(LAMP)

    Linux的安装以及PHP环境的搭建 引言: 对于沉迷于windows数年的用户(比如笔者)来说,Linux中的红帽和utunbu虽然看起来和windows比较像,但是操作起来却是大不相同,需要一个适 ...

最新文章

  1. 全国铁路查询系统_火车票查询时刻表 全国列车时刻表 火车时刻表查询系统使用说明...
  2. linux 编写完程序吗,linux下编写C++程序
  3. python分布式框架_高性能分布式执行框架——Ray
  4. mqtt服务器apollo的搭建和测试工具paho的使用
  5. WordPress的.htaccess十个技巧
  6. ORA-01940: cannot drop a user that is currently...
  7. Tesler去世丨你逃不过复制粘贴,同样也逃不过Tesler定律
  8. 大一计算机基础ppt练习题,计算机基础知识PPT练习题及答案DOC
  9. 信息的可再生性举例_举例说说信息的可处理性
  10. Navicat for MySQL给用户赋予角色
  11. 国内工业互联网领域开源社区资源汇总
  12. Linux的网桥中的STP的实现分析初步
  13. 关于Linux 「Ubuntu」运行wine
  14. Taro 封装遮罩层
  15. excel表格不够怎么添加_Excel表格技巧—无法自动求和怎么办
  16. php求解一元二次方程,求一元二次方程a*x^2 + b*x + c = 0的根
  17. 步进电机驱动器转动一圈400步程序
  18. C#窗体全屏隐藏任务栏
  19. 邮件传输协议SMTP
  20. 2020-11-16 css使用颜色渐变绘制梯形

热门文章

  1. 多维高斯混合模型参数估计(python)
  2. 用DataSetSurrogate加速WebService
  3. redis三个定时监控任务和主观下线、客观下线
  4. 练好英语口语的六大法宝
  5. MT6755/MT6757资料介绍,MT6755/MT6757处理器参数对比
  6. 动态规划之 0-1 背包问题
  7. 【STL】C++ STL之array详解
  8. 在一个字符串中找出最长回文子串
  9. 程序员下班以后做什么副业合适?
  10. 在网上看看非诚勿扰,要不要报名