admin 管理员组

文章数量: 1184232

1 SD_SD启动

在真正的工程应用中我们使用的都是QSPI_EMMC的启动方式,因为SD_SD这种启动方式需要SD卡与数字板一直保持连接,所有在恶劣使用场景下稳定性不好。在用QSPI_EMMC启动系统前我们需要先制作系统映像使系统通过SD_SD这种方式启动起来。下面介绍用petalinux制作系统映像的步骤。

  • SD_SD启动指的是FPGA配置文件及系统引导文件BOOT.BIN和系统镜像image.ub在SD卡的FAT32分区,linux文件系统在SD卡的EXT4分区。
  • QSPI_EMMC启动指的是用QSPI FLASH存储BOOT.BIN,系统镜像image.ub在EMMC的mmcblk1p1分区(FAT32),linux文件系统在EMMC的mmcblk1p2分区(EXT4)。

1.1 制作SD卡

我们需要先对SD卡进行分区。

  • 将sd卡插入读卡器,插入pc机,将卡格式化
  • 打开MiniTool找到该SD卡,将两个分区卷标分别设为BOOT和rootfs(BOOT分区不要太大,最好小于4G)
  • BOOT分区用来存储之后制作的用来配置FPGA以及引导系统启动的BOOT.bin文件,和系统映像image.ub。rootfs分区用来存储之后制作的linux文件系统
  • BOOT分区文件系统设为FAT32,rootfs分区文件系统设为ext4。
  • 然后将两个分区均设为主分区,点击应用完成分区,SD卡制作完毕。

1.2 用Vivado导出硬件描述文件hdf

HDF( Hardware Definition File)文件对PS的外设,如内存和各种控制器的寄存器地址等进行了描述,通过它我们可以了解ARM处理器的外设配置情况。

  • 在导出hdf之前我们要注意:DDR型号选择正确,SD0、SD1、QSPI Flash接口打开并引脚连接正确。
  • 点击vivado工程界面左上角File → Export → Export Hardware to SDK,勾选比特流。
  • 在本工程的sdk目录下就能看到导出的hdf文件。

1.3 建立petalinux工程,导入hdf并配置

  • 进入petalinux工具目录下,获取root权限,并读取settings.sh脚本配置环境变量:
cd /opt/petalinux
sudo su
source settings.sh

  • 新建工程,其中miboard_0120是工程名,工程名根据芯片型号及启动方式进行修改,如7100_sd_sd
petalinux-create -t project -n miboard_0120 --template zynq 

  • 进入创建的工程目录,然后把该工程的hdf文件和bit流文件复制过来,之后导入硬件工程,并配置硬件。在这里最好将终端窗口最大化,否则偶尔会失败。
 cp /mnt/hgfs/ZXJ/035/xillydemo.* . 
 petalinux-config --get-hw-description -p ./

1.3.1 配置SD接口类型

然后会弹出配置窗口,在这里配置系统启动方式,主要的配置如下:

  • SD_SD启动时配置SD接口为SD0,指SD接口为SD卡。
  • EMMC_QSPI启动时配置SD1为EMMC,指SD接口为EMMC。
  • 这里的SD指广义上的SD,EMMC也是SD的一种。
  • 0:表示SD卡 1:表示eMMC

    Subsystem AUTO Hardware SettingsSD/SDIO Settings下配置,
1.3.2 配置支持BOOT.BIN文件大小
  • 在flash Settings设置中,将boot分区的大小设置为0x1400000,大小为20MB,BOOT.BIN文件较大时才设置。
1.3.3 配置BOOT.BIN文件的启动位置

Subsystem AUTO Hardware Settings,Advanced bootable images storage Settings,Boot image settings下配置

  • SD_SD启动时BOOT.BIN文件在SD卡的第一分区,选择sd
  • EMMC_QSPI启动时BOOT.BIN文件在QSPI FLASH中,选择flash
1.3.4 配置linux系统镜像启动位置

Subsystem AUTO Hardware Settings,Advanced bootable images storage Settings,Kernel image settings下配置

  • SD_SD启动时配置内核、设备树(内核和设备树都集成在image.ub映像中)存放在SD卡第一分区,SD卡第一分区对应/dev/mmcblk0p1,选择sd。
  • EMMC_QSPI启动时配置内核、设备树存放在EMMC第一分区,EMMC第一分区对应/dev/

本文标签: 映像 系统启动 工具 petalinux Linux