Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(SDK部分)
- 背景
-
- 思路
- 官方Zmod ADC demo简介
- 软硬件平台
- SDK 工程
-
- 1.从vivado导出硬件到SDK
-
- ①在vivado下生成bit流文件
- ②导出硬件
- ③启动SDK
- 2.新建一个SDK工程
- 3.放入ZmodADC1410_Demo_Baremetal源码
- 4.验证测试
- 参考相关
背景
继 Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(vivado部分)之后,我们来着手搭建Eclypse-Z7 + Zmod ADC 1410 基础环境的SDK部分。
思路
我们在Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(vivado部分)中完成了vivado项目的搭建,接下来我们先要生成bit流文件,然后导出硬件信息到SDK中来创建SDK工程,然后在SDK工程中导入zmod库以及Zmod ADC库等必要的依赖库,设置好文件链接防止程序中文件包含关系出错,重新生成BSP,于是便可得到一个具有官方Zmod ADC demo功能的基础工程,便于之后使用与修改。
官方Zmod ADC demo简介
在这里我们使用Digilent官方的Zmod ADC demo,下载方法见:Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(vivado部分),该demo在下载好后的Eclypse-Z7文件夹下的sw文件夹中,如下图所示:
该文件夹下包含:
简要说明如下:
ZmodADC1410_Demo_Baremetal:Zmod ADC裸机demo源码。
ZmodADC1410_Demo_Baremetal_bsp:Zmod ADC裸机demo板级支持包。
ZmodADC1410_Demo_Linux:Zmod ADC petalinux demo源码。
zmodlib:Zmod 库。
其中ZmodADC1410_Demo_Baremetal和zmodlib是我们所需要的。
我们它们从头构建一个新的工程以便于之后的使用与修改。
软硬件平台
操作系统:windows10
软件平台:vivado2019.1 SDK开发套件
硬件平台:Digilent Eclypse-Z7 Zmod开发套件
SDK 工程
1.从vivado导出硬件到SDK
①在vivado下生成bit流文件
我们进入上次搭建的vivado工程,点击下图中红箭头处的按钮。
出现下图,提示我们工程还没进行implementation,点击OK。
接下来出现下面界面,一般默认即可,点击OK。
接下来就是等待综合,实现,bit流生成,bit流生成完毕后可以看到以下图:
点击Cancel。接下来我们进行硬件的导出。
②导出硬件
点击菜单栏中的File > Export >Export Handware,
勾选上include bitstream选项,点击OK。这一步会生成硬件描述文件.hdf,这个文件就包含了之前使用Vivado建立工程的全部硬件信息,包括寄存器和存储器在地址空间的映射以及FPGA的Bit流等。
③启动SDK
点击Launch SDK。
下图选项默认即可,点击Launch OK,然后进入SDK开发部分。
2.新建一个SDK工程
打开SDK软件后,点击菜单栏中的File > New >Application Project,新建一个工程。
本文的工程名为ADC(可以自己随便设),选择C++选项(因为官方的Demo是用c++写的,所以这里选择c++),点击Next。
点击Next,选择Empty Application >Finish ,工程创建完毕。
3.放入ZmodADC1410_Demo_Baremetal源码
打开ZmodADC1410_Demo_Baremetal文件夹下的src文件夹,把main.cpp复制到上一步创建的新工程ADC文件夹的src文件夹下,删除之前新建工程自动生成的mian.cc文件。
然后把ZmodADC1410_Demo_Baremetal同级目录下的zmodlib文件夹整个复制到ADC文件夹的同级目录下。
注:下图中红框中的文件是必要的,其他文件如果有不一样请不用在意。
接下来,在SDK中,点击ADC文件夹 > 右键 > refresh,即可看到新添加进去的main.cpp文件。
小tips:只要再工程中添加了新文件,都需要refresh一下。
我们看到main.cpp显示了小红叉,双击,我们可以从程序中看出我们缺少了两个文件,如何解决呢?
首先,我们需要链接zmod库。
在src文件夹下,右键 > New > New Folder,选择Advanced,点击Link to alternate location > Browse,选择zmodlib所在的文件夹,点击 Variables > Link to alternate location > WORKSPACE_LOC > Extend, 选择zmodlib文件夹,点击 OK。
点击Finish。
然后,我们设置一下图中zmodadc1410.h和zmod.h为绝对路径的形式
这两个文件都在zmodlib文件夹中,我们可以使用绝对路径来把他包含到main.cpp中。
注:文件夹依据自己设定的来,比如我这我的Eclypse-Z7文件夹放在D:\Store1目录下。
红框中即为该文件的绝对路径。
绝对路径设置好后如下图:
设置完后 Ctrl + B,重新构建工程,构建结束后可以看到工程不报错了。
最后一步,重新生成板级支持包bsp,因为我们的工程已经改变。
右键 ADC_bsp,点击Re-generate BSP Sources,重新生成BSP,生成结束后我们再Ctrl + B手动build一下。
至此SDK部分搭建完成。接下来我们来测试一下该工程能否正确运行。
4.验证测试
step1:在SDK中,点击ADC文件夹,右键 >Debug As>Debug Configurations > 双击序号① > 勾选序号②③ > 点击Apply 。
完成到这步时候,连接好FPGA的电源,Zmod ADC1410,串口线(用来打印信息),jtag线(用来下载bit流文件到板子上),将与信号发生器连接的BNC-SMA线接到Zmod ADC的CH1,打开波形/信号发生器电源,以获得要转换的模拟信号,最后打开FPGA板子的电源。点击Debug,之后会跳出Debug调试界面。
step2:在Debug调试界面连接好串口显示(SDK Terminal),点击下图右侧加号,选择好串口对应的com号和波特率,点击OK。
显示下图即为串口连接成功。
点击运行,可以看到i串口在打印。
我们参考官方demo运行步骤。
可以看到我们的工程运行正确,的确能在串口看到样本值,原始值和时间戳。
至此,Eclypse-Z7 + Zmod ADC 1410 在SDK下的基础项目构建完成,之后即可对该工程根据自己的需求进行修改。
参考相关
1.ZmodADC1410 Library User Guide
链接: https://reference.digilentinc.com/reference/zmod/zmodadc/zmodadc1410libraryuserguide
2.Zmod基本库用户指南
链接: https://reference.digilentinc.com/reference/zmod/zmodbaselibraryuserguide#environment_setup