XILINX-Zynq UltraScale+MPSoc 开发笔记

发布时间:2023年12月21日

1. 资料信息

2. IDE集成开发环境

3. petalinux开发

3.1 环境搭建

? ? ? ? 1. 创建一个ubuntu18.04(或者其他版本),根据UG1144文档安装ubuntu下对petalinux的依懒工具。

? ? ? ? 2. 下载petalinux对应版本,链接:Downloads (xilinx.com)?;本示例下载的是2020.2版本:petalinux-v2020.2-final-installer.run

? ? ? ? 3. 安装petalinux到指定的目录~/petalinux/2020.2/目录下:./petalinux-v2020.2-final-installer.run --dir ~/petalinux/2020.2/

? ? ? ? 4. 进入到~/petalinux/2020.2/目录下运行环境变量配置:source settings.sh

? ? ? ? 5. 键入petalinux-boot --help 是否存在,判断petalinux工具是否安装完成

3.2 导入BSP工程

? ? ? ? 一般XILINX针对开发板完成了对应的BSP包提供,下载对应的BSP包进行安装即可。

? ? ? ? 1. 创建开发目录:mkdir ~/develop

? ? ? ? 2. 基于xilinx-zcu102-v2022.2-10141622.bsp包(链接:Downloads (xilinx.com))下载进行安装在~/develop目录:cd ~/develop; petalinux-create -t project -s ../xilinx/xilinx-zcu102-v2022.2-10141622.bsp

? ? ? ? 3. 在~/develop目录下创建对应的BSP包目录xilinx-zcu102-2022.2:

????????

.
├── build
├── components
├── config.project
├── project-spec
└── system.bit

? ? ? ? 4. 直接编译 :petalinux-build

? ? ? ? ? ? ? ? 编译内核:petalinux-build -c kernel

? ? ? ? ? ? ? ? 编译boot:

? ? ? ? ? ? ? ? 编译根文件系统:

? ? ? ? 5. 将在~/develop/xilinx-zcu102-2022.2/目录下生成image目录,下面为编译出来的目录文件:

? ? ? ? 6. 清除编译:petalinux-build -x mrproper

? ? ? ? 7. 重配置:petalinux-config

? ? ? ? ? ? 内核配置:petalinux-config -c kernel
? ? ? ? ? ? boot配置:petalinux-config -c u-boot
? ? ? ? ? ? 根文件配置:petalinux-config -c rootfs

3.3 创建新工程

3.4 制作BOOT.BIN

? ? ? ? 1. 进入/image/linux目录,运行:petalinux-package --boot --format BIN --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit?--force? ?;将生成BOOT.BIN

3.5 SD/eMMC启动盘制作

? ? ? ? 1. 参考:How to format SD card for SD boot - Xilinx Wiki - Confluence

??

? ? ? ? ? ? ? ? 1)?先格式化原有SD卡:fdisk /dev/sdb //p:查看,d:删除分区,w:保存,q:退出
? ? ? ? ? ? ? ? 2)重新创建分区:fdisk /dev/sdb ?//n:创建分区;配置first sector或默认,配置分区大小+1G;a:增加一个分区,剩余所有

? ? ? ? ? ? ? ? 3)创建分区格式:?mkfs.vfat -F 32 -n boot /dev/sdb1
?? ? ? ? ? ? ? ?????????????????????????????????mkfs.ext4 -L root /dev/sdb2

3.6 SD制作ubuntu支持?

? ? ? ? 1. 下载ubuntu镜像支持zcu102板子,下载:iot-zcu10x-classic-desktop-2004-x07-20210728-85.img.xz文件ubuntu-20.04 链接:?Install Ubuntu on AMD | Ubuntu? ? ? ?

? ? ? ? 2. 准备一张16GB+的SD卡,格式化:格式化原有盘符:fdisk /dev/sdb <根据系统识别信息进行操作> 键入d格式化,格式化完成后键入w写入,q退出

? ? ? ? 3.?

3.7?JATG 制作emmc烧录启动镜像

????????1. 制作一个256MB的块设备:dd bs=1M if=/dev/zero of=~/emmc_template.img count=256
????????2. 卸载loop:sudo apt autoremove --purge snapd
????????3. 文件伪装块设备:sudo losetup /dev/loop0 emmc.img
????????4. 分区创建:sudo fdisk /dev/loop0,第一分区64MB,剩余作为第二分区。因为分区表刚好占了1M,所以第一分区+63MB。
????????5. 第一分区创建分别键入:n, p, 1, 2048, +63M
????????6. 将分区改成FAT32类型键入:t, c;为这个分区加入引导属性:a
????????7. 第二分区创建键入:n, p, 2, 回车,回车
????????8. 保存退出:p, w
????????9. 安装虚拟文件系统挂载工具:sudo apt install kpartx
????????10.sudo kpartx -av emmc.img 将在/dev/mapper/下产生loop0p1,loop0p2分区信息
????????11.格式化boot与rootfs分区
?? ?????????sudo mkfs.vfat -F 32 -n BOOT /dev/mapper/loop0p1
?? ?????????sudo mkfs.ext4 -L rootfs /dev/mapper/loop0p2
????????12.解除挂载:
?? ?????????sudo kpartx -dv /dev/loop0
?? ?????????sudo losetup -d /dev/loop0
????????13.至此,模板块已经创建好,可以通过拷贝直接使用
????????14.创建分区mount点:/mnt/imgboot ?/mnt/imgrootfs
????????15.挂载文件镜像到文件系统:sudo kpartx -av emmc.img
????????16.挂载分区:
?? ?????????sudo mount /dev/mapper/loop0p1 /mnt/imgboot/
?? ?????????sudo mount /dev/mapper/loop0p2 /mnt/imgrootfs/
????????17.拷贝BOOT.BIN,image.ub,boot.src到boot分区
????????18.拷贝rootfs(解压)到rootfs分区。
????????19.解除挂载:?? ?
?? ?????????sudo umount /dev/mapper/loop0p1
?? ?????????sudo umount /dev/mapper/loop0p2
?? ?????????sudo kpartx -d emmc.img
????????20. emmc.img就是一个镜像,可被直接烧录使用。

4. 功能开发

文章来源:https://blog.csdn.net/chenchao03/article/details/135132621
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。