AD3552/AD3551驱动开发

开发环境:Vivado2021.2 ; Windows with Cygwin

HDL版本:hdl_2021_r2   GitHub - analogdevicesinc/hdl at hdl_2021_r2

no-OS版本:no_OS-2021_R2   GitHub - analogdevicesinc/no-OS at 2021_R2

1.创建hdl

详细步骤参见参考链接1;下文记录了开发过程中遇到的问题和解决方法。

AD3552的工程名字是ad3552r_evb,位于hdl->projects目录下。但是该工程在hdl_2022_r2之前(包含HDL_2022_r2)的projects目录下是不存在的(本人猜测,有可能在其他目录下),在主干main中的hdl->projects目录中存在ad3552r_evb(查看日志,ad3552r_evb是2023年10月2日提交的)。

由于本人的开发环境是Vivado2021.2,因此不排除存在一定的兼容性问题。基于Vivado2021.2的开发步骤如下:

  1. 将hdl的main主干下载到本地电脑。
  2. 查看hdl-main>projects->ad3552r_evb中的makefile(zed文件夹下的makefile),看到建立工程的依赖项在hdl-hdl_2021_r2中均存在。考虑尝试将hdl-main>projects->ad3552r_evb拷贝至hdl-hdl_2021_r2->projects目录下,然后运行make,遇到问题再处理。
  3. 将hdl-main>projects->ad3552r_evb拷贝至hdl-hdl_2021_r2->projects目录下,然后运行make,处理工程建立中遇到的问题。
  4. 重新make,遇到问题再处理,直至make成功。

步骤3中遇到的问题:

综合过程中,提示up_dac_common的端口错误。比对hdl-hdl_2021_r2和hdl-main的代码,发现hdl-main中的up_dac_common.v新增了“DAC custom read/write interface”。将该文件中的改动同步至hdl-hdl_2021_r2中,重新make,综合、布局布线OK。

2. 创建no-OS

详细步骤参见参考链接2;下文记录了开发过程中遇到的问题和解决方法。

no_OS-2021_R2中包含了ad3552工程文件(no-OS->projects->ad3552r_fmcz)和驱动文件(no-OS->drivers->dac->ad3552r)。这里,与hdl中的情况不一样,也是奇怪的地方(所以推测hdl中的ad3552r_evb应该之前就存在,至少与no-OS中的ad3552r_fmcz同时存在,只是位置不在hdl中)。

基于Vitis2021.2的开发步骤:

1. 在Vivado2021.2中导出system_top.xsa文件至no-OS->projects->ad3552r_fmcz目录下

2. 打开CMD(重要注意:不要使用windows PowerShell;以管理员身份运行CMD),如下图所示。

3. 在CMD中运行 Vitis安装目录下的setting64.bat(具体位置举例: I:\Xilinx\Vitis\2021.2\settings64.bat);之后,在同一个CMD中,切换至no-OS->projects->ad3552r_fmcz目录下,运行make。

4. 处理make中遇到的问题。我所遇到的问题有两个。

一个是ad3552r_fmcz->srcs文件夹下的parameters.h中XPAR_SPI_0_DEVICE_ID无法识别;解决方法是,查看github修改日志,将XPAR_SPI_0_DEVICE_ID替换为XPAR_PS7_SPI_0_DEVICE_ID。

另一个问题是ad3552r_fmcz->srcs文件夹下的main.c中xil_spi_pl_ops在链接时无法识别。

查看github修改日志,对代码做如下修改。

		.spi_param = {.device_id = SPI_DEVICE_ID,.chip_select = 0,.mode = NO_OS_SPI_MODE_0,.bit_order = NO_OS_SPI_BIT_ORDER_MSB_FIRST,.platform_ops = &xil_spi_pl_ops,.extra = NULL},//上述代码,修改为.spi_param = {.device_id = SPI_DEVICE_ID,.chip_select = 0,.mode = NO_OS_SPI_MODE_0,.bit_order = NO_OS_SPI_BIT_ORDER_MSB_FIRST,#ifdef XPAR_XSPI_NUM_INSTANCES	.platform_ops = &xil_spi_pl_ops,#else.platform_ops = &xil_spi_ops,#endif	.extra = NULL},

5. make的过程中解决问题,最终make成功

6. 在同一个CMD中输入命令make sdkopen,打开Vitis。跳过Vitis的欢迎界面(需要手动点击),可以看到AD3552的Vitis工程。

后续

整体工程的运行还未开展,待验证。

参考链接

1. Building HDL [Analog Devices Wiki]

2. No-OS Build Guide [Analog Devices Wiki]

3. AXI_AD3552R [Analog Devices Wiki]

4. ADRV9002官方例程开发过程中遇到的问题_adrv9002内部arm无法启动-CSDN博客

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

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

相关文章

文心一言 VS 讯飞星火 VS chatgpt (255)-- 算法导论18.1 1题

一、请说明依次从图18-8(f)中删除C、P和V后的结果。如果要写代码,请用go语言。 文心一言: 首先,让我们明确一点:由于您没有提供具体的图18-8(f)的内容,我只能假设它是一个数据结构(可能是图、树或列表等&…

vscode调试typescript(单文件)

环境 tsc: Version 5.4.5 ts-node: v10.9.2 node: v20.12.0 步骤 1.创建文件夹,下方创建一个index.ts。 function test() {let str: string Hello world.console.log(str) } test()2.安装ts调试插件。 3.点击VSCode的运行和调试Tab(第三个&#xff…

关于如何取消数据请求的操作

直接上码: class RequestManager {constructor() {this.requestQueue []}addRequestQueue(axios) {// 创建取消令牌const cancelToken axios.CancelToken.source()this.requestQueue.push(cancelToken.cancel)return cancelToken.token}clearRequestQueue() {thi…

​「Python绘图」绘制太极图

python 绘制太极 一、预期结果 二、核心代码 import turtlepen turtle.Turtle()print("开始绘制太极")radius 100 pen.color("black", "black") pen.begin_fill() pen.circle(radius/2, 180) pen.circle(radius, 180) pen.left(180) pen.circ…

c++ libtorch使用cmake建立

如果我们安装好pytorch,其实不一定一定要安装libtorch,默认都已经安装过了 1 进入pytorch conda env list conda activate pytorch 命令行下使用 python -c 来获取libtorch的基本信息, python -c "import torch;print(torch.utils.c…

区块链的可扩展性三难问题

这个词是由以太坊的联合创始人Vitalik Buterin创造的,并提出了理想的区块链需要具备的三个特征:去中心化、可扩展性和安全性。 Vitalik还提出,区块链几乎不可能很好地实现所有这三个特征,所以会出现权衡。 因此,今天…

static静态成员变量和静态方法

当有new创建一个对象的,里面属性和方法,通过构造函数,能定义多个不同的对象,在我们做面向对象开发的时候,给一个场景,人在一个班级的时候,你的老师可能是固定的。 当我们用构造方法去构造的时候,每次都去传递一个固定的实参去定义个老师。 这样好会显得代码非常的…

SOCKET编程(1):基本概念

基本概念 socket分类 socket提供了**流(stream)和数据报(datagram)**两种通信机制,即流socket和数据报socket 流socket基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢失、不会重复、顺序也不会错乱 数据报socket基于UDP…

Powerdesigner导入mysql8之后注释丢失

目录 一、问题描述及解决思路 二、导入的步骤 1.先按正常步骤建立一个物理数据模型 (1)点击“文件-新建模型” (2)选择物理模型和数据库 2.从sql文件导入表 (1)点击“数据库-Update Model from Data…

正则表达式-前瞻和后顾

正则表达式中的前瞻和后顾。 前瞻(Lookahead) 前瞻是一种断言,它会检查在当前位置之后是否存在某种模式,但不会实际匹配该模式。前瞻有两种形式: 正向前瞻 (?pattern) 检查当前位置之后是否存在指定的模式如果存在,则匹配成功,但不会消耗该模式例如 \w(?\d) 将匹配后面跟数…

RAG 场景对Milvus Cloud向量数据库的需求

虽然向量数据库成为了检索的重要方式,但随着 RAG 应用的深入以及人们对高质量回答的需求,检索引擎依旧面临着诸多挑战。这里以一个最基础的 RAG 构建流程为例:检索器的组成包括了语料的预处理如切分、数据清洗、embedding 入库等,然后是索引的构建和管理,最后是通过 vecto…

学习笔记:【QC】Android Q : telephony-phone 模块

一、phone init 流程图 高清的流程图参考:【高清图,保存后可以放大看】 二、phone MO 流程图 高清的流程图参考:【高清图,保存后可以放大看】 三、phone MT 流程图 高清的流程图参考:【高清图,保存后可以…

提升工作效率,用ONLYOFFICE打造高效团队协作环境

作为一名深耕技术领域已有六七年的开发者,同时又是断断续续进行技术创作将近六年的一个小小作者,我在工作和日常生活中,使用过各色各样的软件。 而在最近几年,一款名为ONLYOFFICE的开源办公套件逐渐走进并融入我的工作与生活&…

paraview 处理 fluent 计算结果

paraview 处理 fluent 计算结果 参考链接:https://zhuanlan.zhihu.com/p/598032490 希望先生的主页也很有价值:https://www.cnblogs.com/Xiwang-Sun/p/14943429.html

如何在适用于 Linux 的 Visual Studio Code 中使用 .NET 8 上的 FastReport Avalonia

我们将继续撰写有关在各种操作系统上的 Visual Studio Code 中使用 FastReport Avalonia 的系列文章。在本文中,我们将详细分析如何使用 Visual Studio Code IDE 在 Linux 操作系统上运行 FastReport Avalonia。 Avalonia UI 是一个积极用于开发跨平台用户界面的 .…

Hyper-V 管理器安装的ubutun扩容磁盘空间说明

一、删除检查点 首先把这个想要扩容的虚拟机停止掉,然后找到检查点,全删除掉,否则没法编辑这个虚拟磁盘。 二、编辑虚拟磁盘 下面截图中下一步不能点击的,只要删除检查点之后就可以点击了。点击下一步然后选择扩容,然后…

组合模式(结构型)

目录 一、前言 二、透明组合模式 三、安全组合模式 四、总结 一、前言 组合模式(Composite Pattern)是一种结构型设计模式,将对象组合成树形结构以表示“部分-整体”得层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式由以下角色组成…

SpringSecurity源码分析(RemeberMe)

RememberMeServices RememberMeServices 记住我的服务的接口 可以重写实现自己的记住我 public interface RememberMeServices { //建议 org. springframework. security. authentication. RememberMeAuthenticationToken 在大多数情况下使用它,因为它具有相应的身份…

词袋法TFIDF

Tf-idf⽂本特征提取 TF-IDF的主要思想是:如果某个词或短语在⼀篇⽂章中出现的概率⾼,并且在其他⽂章中很少出现,则认为此词或者短语具有很好的类别区分能⼒,适合⽤来分类。TF-IDF作⽤:⽤以评估⼀字词对于⼀个⽂件集或…

OpenAI 发布 AI 生成图片检测器;Meta 推出 AI 广告创意工具;Google 正式发布 Pixel 8a,主打 AI

OpenAI 发布 AI 生成图片检测器 OpenAI 昨日官宣推出专用的 AI 监测工具,用于监测图片是否由其旗下 AI 图片生成工具 DALL-E 生成,准确率高达 98.8%。 不过该公司表示,这个检测工具并非旨在检测 Midjourney 和 Stability 等其他流行生成器生…