你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Zynq PS/PL第三篇 ——Adam Taylor 有关MicroZed之23

发布者:jackzhang 时间:2014-03-24 15:25:08

作者:Steve Leibson, 赛灵思战略营销与业务规划总监

在以前的博客中,我们使用Vivado创建AXI4外设,并生成位流文件。创建该设计的硬件组件后,我们需要将它导出至SDK设计,以便我们编写软件来驱动这个设计。

第一步是在Vivado内打开目前的操作,将硬件导出到SDK。(如果试图导出硬件时SDK已经在运行,就会出现一个警告)。如果你没有将硬件导出至SDK ,下一次打开SDK时,需要更新硬件定义和主板支持包(BSP),否则将无法使用。

另外,也有必要更新设计中定义的信息库,包括更新外围设备的IP信息库。因此,应选择Xilinx“ tools ”选项,然后点击“ repositories”,添加“New” 库(本地或全局)。在这里,我选择“本地”。

在Vivado创建的外围设备目录中选择“add”,重新查看库。现在我们可以重新生成项目重建BSP中需要的文件以支持软件开发。

重新构建完成后,打开xparameters.h文件(属BSP内预处理文件)查看为AXI4新外设确立的地址空间:

下一步是打开System.MSS文件并自定义BSP来使用创建外设时生成的驱动程序,而不是运行通用驱动程序。

重新生成项目,确保将驱动程序文件加载到BSP 。这一步很重要,原因在于这些文件中包括一个简单的自我测试程序,可以用来在使用BSP进行高级操作前来测试该软件与外设的连接是否正确。自我测试程序的运行也表明我们已经正确地实例化Vivado硬件。

打开BSP目录后,再打开libsrc目录,出现新AXI4外设的一些文件。正如我们在此前博客中说明的,利用这些文件可在操作本地外围设备如XADC和GPIO时读写外围设备。

在这个简单的例子中,文件adams_perihperal.h包含三个函数,可用来驱动新外设。

ADAMS_PERIHPERAL_mReadReg(BaseAddress, RegOffset)

ADAMS_PERIHPERAL_mWriteReg(BaseAddress, RegOffset, Data)

XStatus ADAMS_PERIHPERAL_Reg_SelfTest(void * baseaddr_p);

与自检函数不同的是,读写函数被映射到通用函数Xil_In32和Xil_Out32,两个通用函数在Xil_io.h.文件中进行了定义。但使用已创建函数启用更多可读代码就像外设编址一样清晰。

在这个实例中,外设内只有四个寄存器,所以只需自测函数写入和读取所有寄存器并报告通过或失败。这个测试表明硬件环境和软件环境正确,因此我们有信心开发在外围模块中定义的更高级功能。

接下来的博客当中,我们将学习如何使用VHDL代码在外设添加功能以便从处理系统中卸载函数并提高系统性能。

这里也可以看看亚当泰勒玩转MicroZed系列其他文章

Adam Taylor玩转MicroZed连载22:详解Zynq 的PS/PL(第二部分)

Adam Taylor玩转MicroZed连载21:详解Zynq 的PS/PL(第一部分)

亚当泰勒玩转MicroZed连载20:Zynq三重定时器/计数器介绍之第四部分)

亚当泰勒玩转MicroZed连载19:Zynq三重定时器/计数器介绍之第三部分)

亚当泰勒玩转MicroZed连载18:Zynq三重定时器/计数器介绍之第二部分)

亚当泰勒玩转MicroZed连载17:Zynq三重定时器/计数器介绍之第一部分)

亚当泰勒玩转MicroZed连载16:Zynq SoC专用看门狗

亚当泰勒玩转MicroZed连载15:实现Zynq SoC专用定时器

亚当泰勒玩转MicroZed连载14:MicroZed定时器、时钟和看门狗

亚当泰勒玩转MicroZed连载13:再谈MicroZed中断

亚当泰勒玩转MicroZed连载12:MicroZed中断

亚当泰勒玩转MicroZed连载11:使用MicroZed按键实现输入

亚当泰勒玩转MicroZed连载10:驱动Zynq SoC GPIO

亚当泰勒玩转MicroZed连载9:遇见Zynq MIO

亚当泰勒玩转MicroZed连载8: MicroZed XADC软件

亚当泰勒玩转MicroZed连载7: 让MicroZed跑起XADC

亚当泰勒玩转MicroZed连载6: MicroZed引导加载器

亚当泰勒玩转MicroZed连载5:  玩转引导加载器

亚当泰勒玩转MicroZed连载4: 在MicroZed上跑你的程序

亚当泰勒玩转MicroZed连载3: 让Zynq和MicroZed说“hello world”

亚当泰勒玩转MicroZed连载2: 设置软件场景

用Vivado工具开发安富利MicroZed应用

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/The-Zynq-PS-PL-Part-Three-A...

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了