ZYBO EDK工程建立之Board Definition File

本来blog是打算写点关于启动相关的东西的,无奈yocto的虚拟机文件迟迟没有下载完,petalinux需要在linux环境下编译目前我的机器虚拟机跑的巨慢无比,打算字符界面操作省一些内存,现在环境还没搭好(解决了共享文件夹就OK了)。所以先搞了一些和linux启动相关不大的东西。

昨晚跑通了不带linux启动的SD卡启动流程。这里跟linux启动相比就是没有了u-boot以及对应的linux kernel和文件系统。在生成boot.bin文件的时候只需要加入fsbl.elf,system.bit,application.elf即可。这里application用的是diligent的官方例程zybo_base_system(也顺便测试了一下HDMI接口以及audio接口)。

这里diligent例程源代码工程是EDK14.7的,而我机器上目前装的是14.6版本,没法打开工程,我就想自己建一个工程。之前实验室用过了嵌入microblaze软核的架构,对EDK开发有了一定的了解,以为这个XPS工程源代码只有.mhs和.ucf来描述。但其实忽略了一个地方就是对于芯片选型的一些配置信息其实在mhs和ucf文件里都是没有描述的,具体放在哪里是不知道的,但是对工程肯定是有用的。开始选择了avnet的zed工程和自己自建空的工程,然后复制zybo_base_system里面的mhs和ucf代码,都不能正常编译。提示的是ps_system的配置有问题。google了一下发现这个zybo本身是有一个Board Definition File描述文件来描述ps_system相关信息的。如果用zed的描述信息来配zybo的源代码自然无法编译通过。因此自己建EDK工程只要导入zybo的官方Board Definition File文件即可(因为EDK原生不配ZYBO的板子)。

那么怎么导入这个Board Definition File还是花了点功夫,查了手册,google都没有。后来自己摸索了一下XPS发现原来在这里:(建工程的时候选择空白工程即可)


接下来就一路顺利了。。

编译过程中发现一个问题,diligent给的这个工程如果用xc7z010-clg400-1的话时序是有问题的,换成-2是可以无时序错误编译成功的。这个官网上zybo信息给的FPGA是xc7z010-clg400-1,但是Board Definition File里面是-2。这个回头要给他们技术支持发封邮件问问,可以要来他们HDMI和VGA的相关IP核的源代码优化一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
介绍 这是使用Digilent Zybo Zynq-7000开发板为GoPro创建3轴手持照相机稳定装备的指南。此项目是为CPE实时操作系统课程(CPE 439)开发的。稳定器使用三个伺服器和一个IMU来纠正用户的运动,以保持相机的水平。 项目所需的部件 Digilent Zybo Zynq-7000开发板 Sparkfun IMU Breakout - MPU 9250 2 HiTec HS-5485HB伺服(购买180度的运动或程序从90到180度) 1台HiTec HS-5685MH伺服(购买90度到180度的180度运动或程序) 2个标准伺服支架 1面包板 15根 male-to-male 跳线 4对male-to-female跳线 热胶 手柄或手柄 直径5毫米的木制销钉 GoPro或其他相机和安装硬件 能够输出5V的电源。 访问3D打印机 步骤1:Vivado硬件设置让我们开始为项目创建底层的块设计。 打开Vivado 2016.2,点击“Create New Project”图标,然后点击“Next>”。 命名您的项目,然后点击“下一步>”。 选择RTL项目,然后点击“下一步>”。 键入到搜索栏xc7z010clg400-1,然后选择部分,然后点击“下一步>”和“完成”。 第2步:设置模块设计(相关文件见附件)现在我们将开始通过添加和设置Zynq IP模块来生成模块设计。 在左侧面板的IP Integrator下,单击“创建块设计”,然后单击“确定”。 右键单击“图表”选项卡,然后选择“添加IP ...”。 键入“ZYNQ7处理系统”并单击选择。 双击出现的Zynq块。 点击“导入XPS设置”,导入提供的“ZYBO_zynq_def.xml”文件。 转到“MIO配置”,选择“应用处理器单元”,并启用定时器0和看门狗定时器。 在“I / O外围设备”下的同一个选项卡中,选择ENET 0(并将下拉菜单更改为“MIO 16 .. 27”,USB 0,SD 0,UART 1,I2C 0。 在“GPIO”下,检查GPIO MIO,ENET复位,USB复位和I2C复位。 现在导航到“时钟配置”。在PL结构时钟下选择FCLK_CLK0。然后,点击“确定”。 第3步:创建自定义PWM IP模块(相关文件见附件)这个IP模块允许电路板发送一个PWM信号来控制舵机的运动。增加了逻辑来减慢时钟,使脉冲以正确的速率输出。该块取0到180之间的一个数字,并将其转换成一个750-2150的usec脉冲。 现在,在左上角附近的工具选项卡下,点击“创建和打包IP ...”,然后点击下一步。 然后选择“创建一个新的AXI4外设”并点击下一步。 命名您的PWM IP块(我们将其命名为pwm_core),然后单击下一步,然后单击下一页上的下一步。 现在点击“编辑IP”,然后点击完成。这将打开一个新窗口来编辑pwm块。 在“Sources”选项卡和“Design Sources”下,展开“pwm_core_v1_0”(用您的名称替换pwm_core ),然后打开变得可见的文件。 将“pwm_core_v1_0_S00_AXI.v”下提供的代码复制并粘贴到项目底部的zip文件中。按Ctrl + Shift + R,用你的名字替换“pwm_core” 。 接下来打开“name_v1_0”,并在文件“pwm_core_v1_0.v”中提供的代码中复制。按Ctrl + Shift + R并用名称替换“pwm_core” 。 现在导航到“Package IP -name”选项卡并选择“Customization Parameters”。 在这个标签中,顶部会有一个黄色的条形文字。选择此项,“隐藏参数”将显示在框中。 现在进入“Customization GUI”,右键点击Pwm Counter Max,选择“Edit Parameter ...”。 选中“在自定义GUI中可见”和“指定范围”框。 将“类型:”下拉菜单更改为整数范围,并将最小值设置为0,最大值设置为65535,然后选中“显示范围”框。现在点击OK。 在“Page 0”树下拖动Pwm Counter Max。现在转到“查看和打包”并点击“重新打包IP”按钮。 第4步:添加PWM IP模块进行设计我们将IP块添加到块设计中,以允许用户通过处理器访问PWM IP块。 右键单击图表选项卡,然后单击“IP设置...”。导航到“资源库管理器”选项卡。 点击绿色加号按钮并选择它。现在在文件管理器中找到ip_repo并将其添加到项目中。然后点击应用,然后确定。 右键单击图表选项卡,然后单击“添加IP ...”。输入您的PWM IP块名称并选择它。 在屏幕顶部应该有一个绿色的条,首先选择“运行连接自动化”,然后单击确

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值