TQ15EG开发板教程:MPSOC创建fmcomms8工程

链接:https://pan.baidu.com/s/1jbuYs9alP2SaqnV5fpNgyg 
提取码:r00c 

本例程需要实现在hdl加no-OS系统中,通过修改fmcomms8/zcu102项目,实现在MPSOC两个fmc口上运行fmcomms8项目。

目录

1 下载文件与切换版本

2 编译fmcomms8项目

3 ZCU102配置修改为15EG

4 编译no-os文件

5 创建VITIS项目并导出BOOT.bin文件

6 上机测试

7 修改FMC引脚使用FMC1启动


1 下载文件与切换版本

首先需要在github上下载hdl和no-OS两个文件,也可以在ubuntu中使用git工具下载,运行如下两条命令进行下载:

git clone https://github.com/analogdevicesinc/hdl
git clone https://github.com/analogdevicesinc/no-os

下载完成后需要切换版本,注意fmcomms8在vivado2019.1版本后才更新出来。本历程使用的是vivado2021.1版本,在hdl下载网址中可以查看vivado版本对应使用的版本,进入下载地址后点击releases。

找到所需要的版本,可以看到与vivado2021.1所对应的是2021_r1。

分别进入hdl与no-os目录,使用git命令进行切换版本,命令如下所示:

cd hdl/git checkout 2021_r1cd ../no-osgit checkout 2021_R1

注意hdl的“r”是小写,no-os的是大写。

2 编译fmcomms8项目

        进入目录hdl/projects/fmcomms8/zcu102,设置vivado的环境变量并编译,等待编译完成。若编译失败,可以调整虚拟机的内存大小,重新多编译几次大概率可以编译过。

cd hdl/projects/fmcomms8/zcu102source vivado安装地址/settings64.shmake

3 ZCU102配置修改为15EG

        编译完成后在命令行输入vivado打开vivado,打开项目-->选择默认项目-->确定,默认项目选择的是打开vivado命令行的地址。

设置-->general-->更换芯片-->搜索15eg-->选择15eg-->确定-->应用

提示框选择No

打开bd文件-->升级IP核-->全部升级,弹出的提示窗口选择OK。

选择generate

打开ZYNQ IP核,修改配置,从zcu102的配置改为15eg的配置需要修改的地方有SD卡,PCIE,DP和DDR的部分。具体配置如下所示:

15EG没留出PCIE的接口需要关闭

DDR的配置如下,修改完成后生成bit文件。

4 编译no-os文件

       在vivado中导出新的XSA文件

        弹窗默认下一步到选保存地址,地址选择当前目录中的.sdk目录,继续下一步,弹窗都选择确定到完成导出。

       进入目录:no-os/projects/adrv9009/src/app,打开app_config.h文件,取消注第47行的注释保存退出。

        进入目录:no-os/projects/adrv9009,把上面导出XSA文件复制过来,编译,若是新开启的窗口需要提前设置环境变量。

5 创建VITIS项目并导出BOOT.bin文件

       回到vitis中,打开vitis,tools-->Launch Vitis LDE

       地址选择上面保存XSA的.sdk文件夹

       创建平台项目-->设置名称-->Next

        选择导出的XDC文件-->Finish

       选择项目进行编译

 

        xilinx-->create... -->zynq...

       选择Zynq -->选择保存地址-->添加文件-->按图中顺序和路径添加文件,共有3个-->生成BOOT.bin文件

  1. 6 上机测试

       子卡插入fmc0,插入串口,电源和SD卡,启动模式设置为SD卡启动:↓↓↓↑ ,打开串口助手软件,由于会识别出两个串口,需要都打开

串口输出内容如下所示:

7 修改FMC引脚使用FMC1启动

      回到vivado中,使用历程提供的文件替换内容,工程目录中MPSOC_fmcomms8_fmc1.xdc。

保存后生成bit文件,制作BOOT.bin文件,流程与上面相同。子卡插入fmc1口进行测试

串口输出内容如下:

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

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

相关文章

超越YOLO! RT-DETR 实时目标检测技术介绍

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

基于STM32F103C8T6的同步电机驱动-电流环PI与力矩模式

基于STM32F103C8T6的同步电机驱动-电流环PI与力矩模式 本系列文章: 基于STM32F103C8T6的同步电机驱动-CubeMX配置与IQmath调用基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现基于STM32F103C8T6的同步电机驱动-ADC采样与基于MT6701的角度获取基于STM32F103C8T6的…

JavaScript中的解构赋值:用途与优势

文章目录 JavaScript中的解构赋值:用途与优势一、简化数组和对象数据的访问数组解构对象解构 二、函数返回多个值三、与扩展运算符结合使用数组扩展对象扩展 四、默认值五、嵌套解构总结 JavaScript中的解构赋值:用途与优势 在JavaScript中,…

linux cpuspeed工具

cpuspeed 是一个用于管理和监控 CPU 频率的工具,主要用于基于 Linux 的系统。它可以帮助用户根据系统的负载自动调整 CPU 频率,以节省电能或提高性能。 以下是一些常见的 cpuspeed 用法及其配置示例: 安装 cpuspeed 在某些 Linux 发行版上…

免杀笔记 ----> DLL注入

这段时间我们暂时没什么事情干的话我们就继续更新我们的免杀笔记力!!! :今天我们讲DLL注入 目录 1.DLL注入 2.直接加载DLL? 3.远程线程注入 获取Handle 远程申请内存空间 将我们的CS的DLL加载入内存 创建远程线…

02:C语言数据类型

C语言数据类型 1、整型变量2、浮点型变量3、字符型变量4、有符号数和无符号数 1、整型变量 #include <stdio.h>int main(void) { /* int a; //定义一个整型变量aint b; //定义一个整型变量bint c; //定义一个整型变量c */ /* int a,b,c; //也可以这样定义a 25;b 6; *…

Linux 服务器环境搭建

一、安装 JDK 官网下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads # 创建目录 mkdir /usr/local/java/# 解压 tar -zxvf jdk-8u333-linux-x64.tar.gz -C /usr/local/java/# 配置环境变量 vim /etc/profileexport export JAVA_HOME/usr/local/java/…

【Linux】进程信号_4

文章目录 八、进程信号3. 信号的处理4. 可重入函数5. volatile 未完待续 八、进程信号 3. 信号的处理 当某个信号的处理函数被调用时&#xff0c;操作系统会自动将当前信号假如进程的信号屏蔽字当中。如果处理完该信号&#xff0c;该信号同样也会自动从信号屏蔽字中 移除。该…

马尔科夫假设

马尔科夫假设 马尔科夫假设&#xff08;Markov Assumption&#xff09;&#xff0c;也称为无记忆假设&#xff0c;它假设在给定当前状态的情况下&#xff0c;未来的状态只依赖于当前状态&#xff0c;而与过去的状态序列无关。在强化学习中&#xff0c;如果这个假设不成立&…

Apache Seata core 模块源码分析

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 一 . 导读 core 模块定义了事务的类型、状态&#xff0c;通用的行为&#xff0c;client 和 s…

毕业季有感

本文介绍一些刚毕业、即将入职前的随想与心得。 毕业和上班无缝衔接。要离开北京了&#xff0c;来到天津。 我一向很喜欢探索新环境&#xff0c;每一次要到新的学校、新的城市、新的单位都会很激动&#xff1b;这一次也是一样&#xff0c;在一开始几乎只有对新环境的憧憬。但是…

zoom缩放问题(关于ElementPlus、Echarts、Vue3draggable等组件偏移问题)

做了一个项目下来&#xff0c;由于整体界面偏大&#xff0c;采取了缩放90%&#xff0c;导致很多组件出现偏移问题&#xff0c;以下我会把我遇到的各种组件偏移问题依次进行描述解答&#xff1a; ElementPlus选择器下拉偏移 <template><el-select :teleported"f…

7.6第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); &#xff08;1.&#xff09;先创建一个数据库 &#xff08;2.&#xff09;创建student表 查看是否创建成功 1、向studen…

http读书笔记

持久化 HTTP/1.1 和一部分的 HTTP/1.0 想出了 持久连接&#xff08;HTTP Persistent Connections&#xff0c; 也称为 HTTP keep-alive 或 HTTP connection reuse&#xff09; 的方法。 持久连接的特点是&#xff0c; 只要任意一端 没有明确提出断开连接&#xff0c; 则保持 T…

MySQL第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录 记录中id字段的值为1&#xff0c;name字段的值为"monkey"…

【Linux】查找命令——which,type,find,whereis,locate

命令与文件的查找 文件的查找可就厉害了&#xff0c;因为我们常常需要知道哪个文件放在哪里&#xff0c;才能够对该文件进行一些修改或维护等操作。 有时候某些软件配置文件的文件名是不变的&#xff0c;但是各Linux发行版放置的目录则不同。 此时就要利用一些查找命令将该配…

【linux/shell】shell中实现函数重载

在 shell 脚本中&#xff0c;函数重载&#xff08;Function Overloading&#xff09;的概念与一些编程语言&#xff08;如 Java 或 C#&#xff09;中的函数重载不同。在这些编程语言中&#xff0c;你可以定义多个同名函数&#xff0c;只要它们的参数列表不同。然而&#xff0c;…

C语言基础全解:细说每个知识点

目录 1. 进制转换方法 1.1 二进制转十进制 1.2 十进制转二进制 1.3 二进制转八进制 1.4 二进制转十六进制 1.5 八进制转二进制 1.6 十六进制转二进制 2. 进制简介 特别注意 C语言基础元素概览 1. 关键字分类 1.1 存储类型关键字 1.2 数据类型关键字 1.3 构造类型…

25.【C语言】循环结构之for 上

1.基本使用 类比while 在while循环中&#xff0c;有三个不可或缺的部分&#xff1a;初始化&#xff0c;判断部分&#xff0c;调整部分 int i 0;//初始化 while (i < 10)//判断部分 {……i;//调整部分 }三个部分太分散&#xff0c;用for循环可集为一体&#xff0c;简洁 …

使用shell脚本实现DM8开机自动启动

编写shell脚本 #!/bin/bashsu -dmdba >>EOF cd /home/dmdba/dmdbms/bin ./DmServiceDMTEST start echo "dm start ... " EOF注意&#xff1a;DmServiceDMTEST每个服务器设置的不一样&#xff0c;根据实际进行更换 授权脚本可执行权限 chmod -x /dmdata/dmse…