疯狂的小牛

ZYNQ学习笔记-【用vivoda建立一个嵌入式系统]

0
阅读(6568)

 

ZYNQ作为全球首款全可编程逻辑器件,不但拥有丰富的可编程逻辑资源,还集成了一个双核的cortex-A9嵌入式处理器,不同于以往的xilinx 产品,ZYNQ可以从以下三个方面来进行应用:

1、      作为单独的嵌入式处理器使用,也就是可以当作普通的ARM9来使用,不用其中的逻辑资源(PS方式);

2、      通过内部的总线将zynq中的逻辑资源和ARM9联合起来使用,也就是经常说的(PL+PS方式);

3、      作为单纯的可编程器件来使用(PL方式),这时需要使用其中的PS或者JATG进行配置;

    废话不多说,先来建立第一个基于ZYNQ嵌入式系统(PS方式),本实例完成通过搭建一个嵌入式系统,

简介PS方式的基本流程,最终通过使用PS里面的串口模块打印一串字符;

   本实例的环境:win7;VIVODA2013.4 ;EDK;开发版ZedBoard

    首先,打开vivoda2013.4,选择Creat New Project,打开新建工程向导,点击 NEXT,给工程命名 first_ps,选择保存路径;

点击NEXT,选择RTL Project

一直点击NEXT,到型号选择界面,选择Board,ZedBoard,

点击NEXT,点击FINISH,弹出如下界面,完成工程向导;


第二步:创建一个嵌入式系统 , IP Integrator中点击Creat Block Design ,取名first_ps,点击OK

 

等待,在弹出来的Diagrm中,右击鼠标,选择 Add IP ,选择zynq_processing_system,

双击zynq_processing_system,打开设置嵌入式系统的属性,由于使用的是zedboard,在Presets里面选择ZedBoard(也可自己设定嵌入式的属性系统;选择ZedBoard,再在ZedBoard的基础上修改会更方便)

ZedBoard的基础上修改,双击左边的向导MIO Configuration,展开I/O Peripherals去掉所有的选项,除UART1,展开GPIO,去掉GPIO MIO;双击CLOCK Configuration,展开 PL Fabric Clocks,去掉FCLK_CLK0;双击PS-PL Configuration,展开 GP Master AXI Interface ,去掉M AXI GP0 interface,继续展开 General>Enable Clock Resets,去掉 FCLK_RESET0_N;双击打开DDR Configuration,勾选掉最上方 Enable DDR,勾选掉DDR以后,程序的大小不得大于128KB,在本例中程序不大于128KB。点击OK,完成设置(此时可以看到图标变小了)

点击,去掉 Apply Board Preset的勾,点击OK

F6或点击进行有效性检测,如果成功则进入下一步

点击source,first_ps点击右键,选择Create HDL Wrapper ,弹出对话框,选择Let Vivado manage wrapper and auto-update ,然后可以看到生成了first_ps_wrapper.v文件
然后在Flow Navigator中点击 Generate Block Design,弹出对话框,点击Generate编译模块

至此,已完成全部的嵌入式环境的搭建工作。

然后点击File>Export Hardware , 勾选Lauch SDK,点击OK,将自动打开EDK

这时可以看到在vivoda中的硬件信息(hw_plaform_0)已各类文件形式已经导入了EDK

第一步全部完成以后,现在开始建立软件工程,点击File>New>Application Project,为工程命名为Hello_world,其余保持默认选项,点击next,选择Hello World,点击Finish

等待编译完成以后,生成了两组文件,Hello_worldHello_world_bspHello_world是顶层应用程序,点击src中的.c文件可以看到,生成的通过串口打印Hello World的代码

Hello_world_bsp是硬件的版级支持包,提供硬件的初始化等工作,可以理解成PCBIOS。然后,将ZedBord上电

Hello World文件夹,右击,选择Run As >Run Configurations,弹出对话框,双击Xilinx C/C++ application(GDB)

选择STDIO Connection,选择你电脑对应的串口,波特率为115200,与此同时打开相应的串口调试工具,点击Apply>Run.

此时,即可通过串口调试工具看到串口相应的输出(Hello World)。

至此,一个完整的基于ZYNQ嵌入式工程已全部完成。