【工作笔记】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语言程序开发,最后放在板子上运行。
【工作笔记】zynq 7035移植linux系列1——linux环境的搭建和移植相关推荐
- 【Linux系列】Linux之CentOS操作系统日常问题(二):catalina.out占用内存大的问题
热门系列: [Linux系列]Linux实践(一):linux常用命令 [Linux系列]Linux实践(二):CentOS系统中搭建java开发环境与部署web项目 [Linux系列]Linux实践 ...
- 【Linux系列】Linux查看日志常用命令大全,再也不怕不会看日志啦
热门系列: [Linux系列]Linux脚本:定时任务批量移动指定文件至另一目录!想学吗?我教你啊 [Linux系列]Linux实践(一):linux常用命令 [Linux系列]Linux实践(二): ...
- Linux系统中Java环境的搭建及JDK的安装(附上每一步操作截图及说明)【一看就懂】
开门见山 第一步: 官网下载你所要使用的jdk版本:或本地已经存在的Linux系统的jdk压缩包.(这里以jdk1.8为例) 将此压缩包按如下图所示操作(1.进入/opt/文件 2.将压缩包拖入此处) ...
- Linux 系列之一 Linux 简介
1 Linux概述 1.1 操作系统简介 1.1.1 为啥需要操作系统呢 ? 计算机是一台机器,它按照用户的要求接收信息.存储数据.处理数据,然后再将处理结果输出(文字.图片.音频.视频等).计算 ...
- 【Linux系列】Linux基础知识整理
Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...
- Linux下Minigui开发环境的搭建(PC+S3C2440
花了两天时间终于把Minigui的开发环境搭建好了,遇到了很多问题,看了很多人的博客,对我的启发很大.关键是以前偷懒装redhat的时候为了省空间,很多库文件都没安装搞的自己很狼狈,不过也由于这个原因 ...
- 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 ...
- linux 下 eclipse 开发环境的搭建
在windows平台下开发习惯了各种ide,不得不承认ide给我们开发带来的便捷.于是希望在linux平台下也希望找到一个合适的ide.这就想起来了eclipse具有跨平台性. 那么就开始搭建环境吧. ...
- Linux的安装与Linux下PHP开发环境的搭建(LAMP)
Linux的安装以及PHP环境的搭建 引言: 对于沉迷于windows数年的用户(比如笔者)来说,Linux中的红帽和utunbu虽然看起来和windows比较像,但是操作起来却是大不相同,需要一个适 ...
最新文章
- 全国铁路查询系统_火车票查询时刻表 全国列车时刻表 火车时刻表查询系统使用说明...
- linux 编写完程序吗,linux下编写C++程序
- python分布式框架_高性能分布式执行框架——Ray
- mqtt服务器apollo的搭建和测试工具paho的使用
- WordPress的.htaccess十个技巧
- ORA-01940: cannot drop a user that is currently...
- Tesler去世丨你逃不过复制粘贴,同样也逃不过Tesler定律
- 大一计算机基础ppt练习题,计算机基础知识PPT练习题及答案DOC
- 信息的可再生性举例_举例说说信息的可处理性
- Navicat for MySQL给用户赋予角色
- 国内工业互联网领域开源社区资源汇总
- Linux的网桥中的STP的实现分析初步
- 关于Linux 「Ubuntu」运行wine
- Taro 封装遮罩层
- excel表格不够怎么添加_Excel表格技巧—无法自动求和怎么办
- php求解一元二次方程,求一元二次方程a*x^2 + b*x + c = 0的根
- 步进电机驱动器转动一圈400步程序
- C#窗体全屏隐藏任务栏
- 邮件传输协议SMTP
- 2020-11-16 css使用颜色渐变绘制梯形