XILINX-Zynq UltraScale+MPSoc 开发笔记

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. 功能开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python---端口和端口号的介绍

1. 问题思考 不同电脑上的飞秋之间进行数据通信&#xff0c;它是如何保证把数据给飞秋而不是给其它软件呢? 其实&#xff0c;每运行一个网络程序都会有一个端口&#xff0c;想要给对应的程序发送数据&#xff0c;找到对应的端口即可。 端口效果图: 2. 什么是端口 端口是传…

电巢助力第十届图像技术高峰论坛圆满落幕,回顾西电与电巢的校企合作四年硕果累累

图像技术高峰论坛圆满落幕 12月17日&#xff0c;由中国图象图形学学会、陕西省科学技术协会主办、西安电子科技大学通信工程学院、陕西省创新驱动共同体承办的“第十届图像技术高峰论坛暨陕西第五届图像处理与分析研讨会”在陕西西安成功举办。电巢科技作为本次论坛的承办单位&…

某电子文档安全管理系统 SQL注入漏洞复现

漏洞介绍 亿赛通电子文档安全管理系统 (简称: CDG)是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&#xff0c;对电子文档进行全生命周期防护…

未来仓储新玩法小空间做大文章

身处智能消费时代的大家都应该有深刻感受&#xff0c;物流速度在逐年增快。根据国家邮政局预估&#xff0c;2020 年快递业务吞吐量超 740 亿件&#xff0c;同比增长 18%。 面对日益增加的商品交付量&#xff0c;不得不重新定义产品分销方式&#xff0c;从而满足当今互联网消费…

从零开始学HBase:打造你的大数据技能库!

介绍&#xff1a;HBase是一个分布式的、面向列的开源数据库&#xff0c;源于Fay Chang所撰写的Google论文“Bigtable&#xff1a;一个结构化数据的分布式存储系统”。类似于Bigtable利用了Google文件系统&#xff08;File System&#xff09;提供的分布式数据存储&#xff0c;H…

<八>JavaScript中的对象及对像的增删改查

使用基本数据变量所创建的变量都是独立的&#xff0c;不能成为一个整体&#xff0c;对象属于复合型的数据类型&#xff0c;在对象中可以保存多个不同的数据类型的属性。 一、对象的分类 1.1内建对象 由ES标准中定义的对象 比如&#xff1a;Match、String、Number、Boolean、…

华为atlas300安装教程

1、安装包位置&#xff1a; /data/ai_install_packages 2、添加HwHiAiUser用户&#xff1a; groupadd -g 1000 HwHiAiUser useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash 3、安装驱动&#xff1a; ./Ascend-hdk-310p-npu-driver_6.0.0_l…

前端FLV视频直播解决方案

项目背景&#xff1a; 1. 后台给出一个地址&#xff0c;持续不断的推送flv视频流。 2.前端需要接收视频流&#xff0c;并寻找合适的播放插件。 一开始&#xff1a; 其实用的是xgplayer&#xff08;西瓜视频&#xff09;。 官网地址&#xff1a;西瓜播放器 使用的是直播&a…

DELL MD3600F更换控制器电池

1、存储左上角闪红灯&#xff0c;管理软件提示控制器1电池故障&#xff0c;需取出控制器更换上新电池。 2、通过管理软件确认两个控制器编号&#xff1b;确认到下面的是控制器1 3、拔掉控制器上插的线&#xff08;SAS线、网线、光纤线&#xff09;&#xff0c;打好标签&#xf…

外贸SEO建站系统有哪些?海洋建站的优势?

外贸SEO建站怎么做比较好&#xff1f;如何做谷歌独立站SEO优化&#xff1f; 外贸企业越来越需要建立自己的在线形象&#xff0c;以吸引更多的潜在客户。而要实现这一目标&#xff0c;外贸SEO建站系统是一种非常有效的手段。那么&#xff0c;外贸SEO建站系统有哪些呢&#xff1…

常见 平滑函数

平滑函数是指具有较为连续和缓和性质的数学函数。这类函数通常在局部小范围内变化不大&#xff0c;避免了突变或者急剧的波动。以下是一些常见的平滑函数&#xff1a; 高斯函数&#xff08;Gaussian Function&#xff09; 高斯函数是一种常见的平滑函数&#xff0c;具有钟形曲…

五、从0开始卷出一个新项目瑞萨RZN2L之RZT2L BaseProject coremark的移植

感谢来自b站热心帅气的同学分享的RZT2L移植经验总结的md文档 1 需要注意的小点 1.1 使用Flash运行调试前&#xff0c;新板子需要erase 1.2 在线debug&#xff0c;需要修改startup.c 2 coremark工程建立 2.1 工程创建 2.2 src 用户c代码移植 2.3 debug调试 …

【python】进阶--->网络编程(一)

一、网络编程 网络 : 为了联络多方然后进行通信,将数据从一方传递给另一方. 网络协议 : 不同计算机只需要通过联网,那么就可以相互进行传递数据,那么不同种类的计算机之间就和不同语言的人之间沟通一样,需要一种大家都认可都遵循的协议即可. 那么计算机都遵循的网络通信协议叫…

Kafka--Kafka日志索引详解以及生产常见问题分析与总结

一、Kafka的Log日志梳理 ​ 这一部分数据主要包含当前Broker节点的消息数据(在Kafka中称为Log日志)。这是一部分无状态的数据&#xff0c;也就是说每个Kafka的Broker节点都是以相同的逻辑运行。这种无状态的服务设计让Kafka集群能够比较容易的进行水平扩展。比如你需要用一个新…

嵌入式开发工程师

嵌入式开发 岗位需求 上岗必备 文章目录 嵌入式开发前言一、负责新产品的电路图、PCB、嵌入式程序、软硬件调试等工作二、负责对现有产品进行硬件优化、调试、维护、排故等工作三、 负责各种单片机,传感器,元器件选型以及BOM表整理四、 负责硬件产品研发和量产过程中项目设计…

网络技术基础与计算思维实验教程_3.1_单BSS实验(基本服务集合实验)

无线局域网的最小基本组件是基本服务BSS 实验内容 实验目的 实验原理 实验步骤 为了显示AP的有效通信范围 切换到物理工作区 把物理工作区导航到城市家园 直接在城市家园放置AP0 可以看到AP0的通信范围 放置笔记本电脑 在默认情况下 笔记本电脑上 安装了以太网卡 现在换成无…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型&#xff0c;大家想到的都是动辄百亿规模以上参数量的模型&#xff0c;13B、70B都是稀疏平常入门级的&#xff0c;但是目前从模型层面来看&#xff0c;模型参数量的规模两极分化已经来临&#xff0c;早期各大公司为了效果怼上去&#xff0c;采取了简单粗暴的…

[Angular] 笔记 4:ngFor

ngFor 是一个 for 循环&#xff0c;只能用于循环遍历 list&#xff0c;不能用于遍历单个实体。 下图中的 pokemons 通常是数据库中的数据&#xff1a; 例子&#xff1a; app.components.ts: // 使用类型检查 interface Pokemon {id: number;name: string;type: string;// is…

【postgresql】PSQLException: An I/O error occurred while sending to the backend.

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. 发送到后端时发生I/O错误。 java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 34284 尝试将超出范围的整数作为2字节值发送&#xff1a;34284 pos…

OpenHarmony开发环境快速搭建(无需命令行)

一. 搭建Windows环境 在嵌入式开发中&#xff0c;很多开发者习惯于使用Windows进行代码的编辑&#xff0c;比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段&#xff0c;大部分的开发板源码还不支持在Windows环境下进行编译&#xff0c;如Hi3861、H…