PetaLinux学习笔记一

12 篇文章 5 订阅

PetaLinux学习笔记

petaLinux 工具可帮助简化基于 Linux 产品的开发;您可以使用下列工具来完成从系统启动到执行的所有操作:
① 命令行接口
② 应用、器件驱动程序、库生成器以及开发模板
③ 可引导的系统映像生成器
④ 调试代理程序
⑤ GCC 工具
⑥ 集成的 QEMU 全系统仿真器
⑦ 自动化工具
⑧ 支持 Xilinx 系统调试器

使用这些工具,开发人员可以定制引导载入程序、Linux 内核或 Linux 应用。他们可以通过网络或 JTAG 在随附的全系统仿真器 (QEMU) 或物理硬件上添加新的内核、器件驱动程序、应用和库,以及启动并测试软件协议栈。

一、利用JTAG在硬件上启动petalinux镜像

这种方法很方便,在调试的时候不需要把镜像下载到QSPIFLASH里(下载速度很慢)。
① 把xilinx仿真器连接到虚拟机上。板子启动方式设为JTAG。以太网也接入本地局域网。

② 如下图,把工作目录切换到images/linux下。
在这里插入图片描述
使用petalinux-build生成的镜像都在这个文件夹下。

③ 使用petalinux-boot --jtag --fpga --bitstream petalinux_wrapper.bit即可通过JTAG下载bit流到板子上。
在这里插入图片描述
可以看到zedboard上的LD12灯亮了。

④ 使用petalinux-boot --jtag --prebuilt 3即可把linux镜像下载到板子上。
使用了:system.dtb u-boot.elf zImage zynq_fsbl.elf

二、启动QEMU上的petalinux镜像

petalinux-boot --qemu --prebuilt 3
petalinux-boot --qemu --u-boot
petalinux-boot --qemu --kernel

注意:使用QEMU和JTAG时,要先封装预建镜像,使用如下命令:
petalinux-package --prebuilt --fpga
之后,会自动创建pre-built文件夹,并自动添加一些文件。如图:
在这里插入图片描述

执行petalinux-boot --qemu --kernel或者petalinux-boot --qemu --prebuilt 3 命令,启动kernel的效果如下图:
在这里插入图片描述
QEMU这种调试linux的方法很方便,还是可以用一用的。

三、利用SD卡在硬件上启动petalinux镜像

将文件夹linux/images下的BOOT.BIN 和 image.ub 拷贝到SD卡的FAT32分区中。
设置启动方式为SD卡。
如果启动失败,提示找不到内核镜像。可能是bootcmd环境变量不正确。

四、使用TFTP启动硬件上的PETALINUX镜像

普通文件传输协议(TFTP)
TFTP 启动可节省大量时间,因为比 JTAG 启动快很多,而且不必为内核源中的每次更改都刷新镜像。

① petalinux-boot --jtag --prebuilt 2

② 输入任意字符,使其停在UBOOT中。如下:
在这里插入图片描述
③ print serverip 检查TFTP服务器IP地址

Zynq> print serverip
serverip=192.168.157.129

④ set serverip ; saveenv 设置主机的IP地址

Zynq> set serverip 10.113.214.140 ;saveenv
Saving Environment to FAT...
writing uboot.env
done

⑤ run netboot 启动内核

Zynq> run netboot
*** ERROR: `ipaddr' not set

针对这个error,使用如下命令:

Zynq> set ipaddr 10.113.214.205
Zynq> run netboot              
Using ethernet@e000b000 device
TFTP from server 10.113.214.252; our IP address is 10.113.214.205
Filename 'image.ub'.
Load address: 0x10000000

又会出现下面这个错误,是UBUNTU上的TFTP服务器还没有搭建。

Loading: T T T T T T T T T 
TFTP server died; starting again


https://blog.csdn.net/zengxiaohua123/article/details/80614950
这个链接里讲述了如何搭建TFTP服务器。
在这里插入图片描述
还有这里提示的Failed to copy built images to tftp dir: /tftpboot。就是还没有搭建TFTP服务器。

搭建成功后,还是不能使用,因为要关闭win10的防火墙。公司关不掉,算了。

五、自定义工程

① petalinux-config
可配置根文件系统类型:INITRAMFS、INITRD、JFFS2、NFS、SD card。
可配置镜像的存储位置:闪存还是SD。
可配置闪存的分区。
可配置启动方式:INITRD、INITRAMFS、TFTP、NFS、JFFS2、SD的EXT。

② petalinux-config -c kernel

③ petalinux-config -c rootfs

④ petalinux-config -c u-boot

相关说明:
① 在INITRAMFS模式中,RootFS被包含在内核镜像中。
zImage → zImage(内核) + rootfs.cpio
② 在INITRD模式中,内核镜像不包含RootFS。

在ug1144手册的第10章 高级设置里,有petalinux-config的详细说明。
“Advanced Bootable Images Storage Settings”子菜单允许指定可启动镜像的位置。PetaLinux 使用此子菜单中的设来设置 U-Boot。 如果禁用此子菜单,PetaLinux 将使用“Flash Settings”子菜单中指定的闪存分区表来定义可启动镜像的位置。
在这里插入图片描述
“Kernel Bootargs”子菜单允许 PetaLinux 在 DTS 中自动生成内核启动命令行设置,或者传递 PetaLinux 用户定义的 内核启动命令行设置。以下是默认的 bootargs:console=ttyPS0,115200 earlyprintk 。

还有一个UG1157《PetaLinux 工具文档:PetaLinux 命令行参考》手册 ,有petalinux命令的详细用法。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ta o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值