zynq7000从emmc启动,使用ext4文件系统

本文档详细介绍了如何配置Zynq7000从emmc启动,使用ext4文件系统。内容包括硬件配置(QSPI Flash、emmc分区),操作步骤(创建工程、编译生成BOOT.BIN、使用uboot加载文件系统、分区格式化)、注意事项(挂载和格式化分区的问题)。在操作过程中,强调了在uboot中利用tftpboot加载initramfs,删除并重新创建emmc分区,以及如何处理格式化分区时可能出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件配置及代码存放说明

  • QSPI连接一个16MB的Flash
  • SD1接口接emmc
  • 将zynq_fsbl.elf+fpga.bit +u-boot.elf组成的BOOT.BIN放在QSPI flash中
  • 将emmc分成两个区,第一个区FAT32格式,用来存放iamge.ub。第二个区ext4格式,用来存放文件系统。

操作步骤

  1. 创建工程

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

  2. 添加硬件平台描述信息
    petalinux-config --get-hw-description ./xsa

  3. 配置从emmc加载image
    petalinux-config -> sybsystem AUTO Hardware Settings -> Advanced bootable images storage Settings
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

boot image settings ---> image storage media (primary flash) 	//uboot放在QSPI Flash中
u-boot env partition settings  ---> image storage media (primary flash)	//环境变量放在QSPI Flash中
kernel image settings  ---> 	image storage media (primary sd)		//image放在emmc中
jffs2 rootfs image settings  ---> image storage media (primary flash) 
dtb image settings  --->   image storage media (from boot image) 
  1. 先配置一个initramfs的系统,用来给emmc分区。
    petalinux-config -> Image Packaging Configuration -> Root filesystem type (INITRAMFS)
    在这里插入图片描述

  2. 编译
    petalinux-build

  3. 生成BOOT.BIN
    petalinux-package --boot --fsbl --u-boot --fpga --force

  4. 将BOOT.BIN下载到QSPI Flash中
    我是利用vitis软件新建一个工程,然后xillinx -> program flash时将BOOT.BIN替换成我们上面一步生成的。
    在这里插入图片描述

  5. 进入uboot,使用tftpboot命令加载initramfs格式的文件系统到内存中,然后从内存启动。
    在这里插入图片描述

  6. 删除emmc里的所有分区,然后重新创建两个分区。
    第一个分区是primary分区,FAT32格式。
    第二个分区也是primary分区,EXT4格式。

/* 查看emmc设备 */
root@2-emmc:~# ls /dev
...						
mmcblk0             ram13               tty2                tty47               vcsu1
mmcblk0boot0        ram14               tty20               tty48               vga_arbiter
mmcblk0boot1        ram15               tty21               tty49               watchdog
mmcblk0p1           ram2                tty22               tty5                watchdog0
mmcblk0p2           ram3                tty23               tty50               zero

/* 查看emmc当前的分区是否有挂载点  */
root@2-emmc:~# mount               
rootfs on / type rootfs (rw,size=503156k,nr_inodes=125789)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=503156k,nr_inodes=125789
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jimbo_Zhang

有钱的捧个钱场

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

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

打赏作者

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

抵扣说明:

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

余额充值