Petalinux 基本工程的构建

本文详细指导了如何在Windows11、Ubuntu18.04环境下使用Vivado2019.2和Petalinux2019.2搭建ZYNQ开发环境,包括创建Vivado工程、配置ZYNQ核心、设置DDR和UART,以及在Petalinux中配置和编译过程,最终进行TF卡启动测试和上板验证。
摘要由CSDN通过智能技术生成

电脑环境

vivado版本:2019.2

petalinux版本:2019.2

windows:Win11

ubuntu版本:18.04

1. Vivado 工程搭建

1.1新建vivado工程

(1)打开Vivado 新建一个项目, 新建一个VIVADO 工程,打开软件 选中Create Project, 如下图所示

image-20240122133239133

(2)点击NEXT ,在出现的第二个对话框“Project name”中输入工程名;在“Project location”中选择保存路径;勾选“Create project subdirectory”(默认),最后点击“Next” 备注,所有的路径均不能出现中文名称

image-20240122133527495

(3)点击 RTL PROJECT 选项,点击NEXT

image-20240122133618568

(4)选择芯片信号,笔者的是xc7z010,点击NEXT然后点击Finish

image-20240122133718033

之后 工程就新建好了, vivado 进入到开发界面

image-20240122133826629

1.2Block Design 部分创建

此处需要创建一个ZYNQ CORE ,并在ZYNQ CORE中设置DDR 以及UART等参数

  • (1)创建一个BLOCK设计

image-20240122134131909

  • (2)搜索并添加ZYNQ7 Processing System,添加ZYNQ7 PROCESSING SYSTEM模块

image-20240122134211801

  • (3)软件自动生成了一个 zynq的block 如下图所示,接下来要做一些相应的设置,双击下图中的ZYNQ核

image-20240122134246403

  • (4)在zynq中设置DDR功能:

依次在弹窗里找到DDR Configuration→DDR Controller Configuration→DDR3,在Memory Part下拉菜单中根据自己板子上的DDR来选择相应的DDR3,本实验所用到型号:MT41K128M16JT 125,数据位宽选择16bit 最后点击“OK”,如下图所示。

image-20240122134439526

  • (5)添加 uart功能,因为板子的UART功能是连接在PL端的,所以这里选EMIO方式,再添加SD功能,选择MIO方式

image-20240122134539614

  • (6)随后点OK 保存修改, 点击“Run Block Automation”如下图所示。在弹出的选项中保持默认,点击“OK”,即可完成对ZYNQ7 Processing System的配置

image-20240122134649909

  • (7)用鼠标连接FCLK_CLK和 M_AXI_GP0_ACLK,得到下图

image-20240122134740669

  • (8)右键UART_0选择Make External,并且可在左下角修改名字

image-20240122134814089

  • (9)source→Design Source ,右键我们创建的BLOCK工程,点击Generate Output Products,生成文件(这个看个人电脑速度,反正我的慢的一批QAQ)

image-20240122134906427

  • (10)source→Design Source ,右键我们创建的BLOCK工程,点击create HDL wrapper,打包BLOCK文件并生成.v代码

image-20240122135144199

  • (11)点击左下角 Run Synthesis对工程进行编译,这也看电脑速度:D

image-20240122135226057

  • (12)编译完成之后,根据以下几个步骤,打开分配引脚界面

image-20240122135649885

将 UART 部分的 TX RX 分别设置成 U13,T12 电压属性设置成 LVCMOS33, 之后保存(保存的时候会让你给约束文件命名,自行定义就好)

image-20240122135751096

  • (13)生成bit文件 :按下Generate Bitstream 完成综合以及生成bit文件,等待弹出综合完成的窗口

image-20240122135933659

  • (14)File→Export→Export hardware…,弹出的对话框

image-20240122140202085

  • (15)在弹出的对话框中,先点击NEXT,然后到如下界面,选择Include bitstream,然后NEXT

image-20240122140338864

  • (16)然后在如下界面选择保存路径的名称和路径,也就是.xsa文件,这个就是后面构建petalinux要用的硬件文件了

image-20240122140507874

  • (17) 保存的目录中有这个文件

    image-20240122140635010

2.PetaLinux 工程创建

  • 打开虚拟机下的 Ubuntu系统,打开命令行

输入 source /home/qm1412/petalinux2019.2/settings.sh 对Petalinux 的环境进行加载

source /home/qm1412/petalinux2019.2/settings.sh

image-20240122141127935

  • 在Ubuntu下创建工程目录

mkdir ./petalinux_project
cd ./petalinux_project
  • 创建Petalinux 工程,然后cd进入新建的petalinux工程文件

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

image-20240122141717723

  • 复制.xsa文件到刚才创建的工程文件夹中

image-20240122144252898

  • 设置路径并启动Petalinux 配置页

petalinux-config --get-hw-description=.

image-20240122144659035

  • 对Petalinux 进行配置

( a ) 修改启动项

用键盘上的上下左右键移动光标,选择Subsystem AUTO Hardware Settings 按下回车(按两下ESC可以退回上一层)

image-20240122151556431

选择Advanced bootable images storage Settings ,按下回车

image-20240122151652677

选择 boot image settings选项 回车

image-20240122151726254

选择 primary sd并按回车(如果你在vivado 里设置了nand flash 等,这里就有多个选项可选了)

image-20240122151755003

image-20240122151812221

之后连按两次ESC 可以返回上一级, 一直返回,直到回到最初的初始界面

( b )同理 对kernel image settings 也进行设置 ,ubsystem AUTO Hardware Settings 按下回车*

image-20240122151556431

选择Advanced bootable images storage Settings ,按下回车

image-20240122151652677

image-20240122152017322

image-20240122152037865

( c )root 文件系统 类型选择

选择Image Packaging Configuration

image-20240122152139568

选择 Root filesystem type

image-20240122152221147

选择 INITRAMFS

image-20240122152237198

之后按多次ESC回到根菜单

( d )设置加载位置,因为板子上的DDR是256MB 的,而默认的加载位置已经超过256M的边界了,所以这里需要调整加载位置

选择u-boot Configuration

image-20240122152711744

选择 netboot offset 选项 按回车

image-20240122152737312

修改为 0x08000000 按OK 确认 (0x08000000可以修改为其他值,它影响uboot中kernel的加载位置,以不会超区同时不会覆盖其他文件数据为准)

image-20240122152833408

( e )保存设置 选择save 并点选ok 对设置进行保存

image-20240122153207754

( f )最后配置完成的界面

image-20240122153334158

  • 获取文件夹的权限

在完成上一步的操作之后,sudo chmod 777 /home/qm1412获取文件夹的权限(工程文件夹和petalinux的安装文件夹),否则编译的时候会报错(有的是又不用,可能又是魔法问题:D)

3.配置“三件套”还有编译

3.1 配置u-boot

petalinux-config -c u-boot

执行一段时间会出现这个窗口,这个破窗口不会自己弹出来,得自己手点

image-20240122154036574

本次只是测试一下,不做任何配置,就直接保存,名字随便取就好

image-20240122154238567

image-20240122154259619

然后退出,让它完成后续的执行

image-20240122154407442

3.2 配置kernel

petalinux-config -c kernel

这里也是一样的,执行一段时间会出现这个窗口,这个破窗口也不会自己弹出来,得自己手点(痴呆)

image-20240122154620723

同样,我们不用配置,只需保存退出即可

image-20240122154648681

然后就让它跑完

image-20240122154718214

3.3 配置rootfs

petalinux-config -c rootfs

特别是配置这个文件系统,一天到晚给我报错(后面build的时候),笔者总结了一篇报错的文章给大家参考以下​​​​​​​petalinux 报错总结 - QM1412 - 博客园 (cnblogs.com)

image-20240122155013369

3.4编译整个工程

petalinux-build

image-20240122155134018

之后系统就开始编译了 ,需要等很久 视机器性能而定

image-20240122155155803

直接到出现提示 successfully built project 代表编译完成了

image-20240122160311092

3.5打包boot.bin

编译完成后,项目工程文件夹下会有image文件夹,执行petalinux -package 命令 将zynq_fsbl.elf, system_wrapper.bit,u-boot.elf,image.ub 四个文件打包生成BOOT.bin 文件

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

如下图所示,代表打包完成(有警告,直接忽略)

image-20240122161039635

4.TF启动测试

在Ubuntu 系统内 打开 工程文件夹内 编译生成的image文件夹

image-20240122161151443

再打开linux 文件夹

image-20240122161217726

这里面会有我们要烧录到TF卡里面的文件

image-20240122161323075

这里我们插入TF卡,注意:TF卡必须格式化成FAT32的格式,不然不会成功!!!!!!!

image-20240122161455847

然后将上面提到的两个文件复制到TF卡里面就好了

image-20240122161720983

然后拔出TF卡,插入zynq板卡中,一般都会有启动模式的,只需将拨码开关选择SD卡模式启动就可以了

5.上板测试

这里我使用的是“MobaXterm”来查看板子是否成功运行

image-20240124111424714

双击进入进入这个软件里面

image-20240124111555024

然后我们点击左上角的Session,然后点击Serial,做如下配置(记得先把开发板跟电脑已经连接好串口了)

image-20240124111839978

然后点击OK之后就会发现一些乱码,只需要reset一下板子就可以了

image-20240124112013449

到这里我们就启动成功了,然后默认的用户名和密码都是 root,我们登录

image-20240124112119658

这样我们就登录成功了,这个流程我尝试了很多次,按照这个教程还是比较轻松可以搭建成功的✨

  • 41
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值