Zedboard评测(二)——利用PS部分建立嵌入式系统2012年09月15日⁄评测⁄评论数2⁄被围观2,017+在Zedboard的Demo演示中试验了通过Quad-SPIFLASH和SD存储卡启动系统,还有一种配置Zynq芯片的方法是通过JTAG接口,而且FPGA逻辑的调试和嵌入式软件调试也需要通过JTAG,下面我们来看看在Zedboard上面如何进行嵌入式系统开发。Xilinx提供了一整套软硬件设计开发工具ISEDesignSuite,其中整合了各种开发软件,可以在Xilinx网站免费下载。注意为了能够使用最新的Zynq芯片必须下载ISEDesignSuite14.1或者以上版本,FPGA的设计工具都很庞大,14.1版本ISE占到了6.5G,非常恐怖。下载完成解压缩之后开始安装如下可以选择EmbeddedEdition,也可以选择SystemEditionISE软件是需要License的,安装完成以后可以选择Webpack,这是Xilinx提供的一个免费的版本。ISEDesignSuite是一系列开发工具的集合,在这里我们主要会用到以下几个主要的工具:PlanAhead:这是进行Zynq嵌入式系统设计的一个入口,整合了嵌入式硬件设计工具XPS以及软件设计工具SDK,还连接逻辑综合等ISE工具。XilinxPlatformStudio(XPS):用于搭建嵌入式系统硬件平台XilinxSoftwareDevelopmentKit(SDK):嵌入式软件开发环境ChipScopePro:片上的信号逻辑分析工具软件安装完成后,现在可以在Zedboard硬件平台上实验如何进行嵌入式系统软硬件开发了,在这之前建议下载一个Zedboard板卡定义文件,这在之后的Zynq硬件配置时会用到。Zynq芯片内部集成了处理器和可编程逻辑,我们知道它的内部大体可以划分为PS(ProcessingSystem)和PL(ProgrammableLogic)部分。PS和PL部分是可以独立配置也可以整合在一起同时配置,也就是说我们可以单独建立PS系统(如果不用到PL部分IO),也可以单独配置PL逻辑(PS部分只作为配置PL逻辑的控制器),也可以同时配置PS和PL逻辑,可见Zynq芯片可以灵活的搭建嵌入式平台实现不同的功能。建立独立的PS系统建立一个独立的PS系统就是我们只在PS部分搭建一个ARM的嵌入式系统,不需要额外PL逻辑,利用Xilinx的工具能很快建立一个系统,甚至不需要写任何代码,模块化的设计确实很方便。首先Zedboard上的MODE选择跳线我们要设在通过JTAG启动(参见ZedboardDemo演示),如下:上图是一般的Zynq芯片的设计流程。按照步骤能很快建立一个处理器系统。1)打开PlanAhead,选择CreateNewProject新建一个项目按照下图选择建立项目2)确定后生成了一个新的项目,PlanAhead项目的文件以后缀.ppr结尾,可以点击AddSouces添加硬件设计文件。选择建立一个新的EmbededSource,确定之后PlanAhead会自动跳用XPS执行。3)在XPS中设定硬件的配置,与之前版本不一样的地方是右边系统窗口里增加了Zynq标签页,图形化的表示PS内部框图。图中绿色的部分是可以修改参数也就是说可以重新配置的。图形化逻辑配置简单明确4)现在可以配置PS内部逻辑,也可以导入配置好的模板,在这里我们导入之前下载的Zedboard板卡定义文件,选择Zynq标签页下面Import按钮弹出窗口确定后导入了定义好的Zedboard文件,配置后的框图如下,这是点击绿色图块会发现逻辑已经设定好。5)关闭XPS,又回到PlanAhead窗口。这时在DesignSouces下增加了刚才建立的.xmp项目。邮件点击.xmp选择CreateTopHDL。到这一步一个简单的ARM系统建立起来了,只需要建立PS部分配置。下一步将硬件下载到Zedboard上,搭建好Zedboard平台,需要JTAG下载线,可以用MicroUSB连接到USB-PROG(J17)口,也可以使用Xilinx下载电缆连接到14脚JTAG插座(J15)。6)选择File-Export-ExportHarware...,弹出窗口,够选上LaunchSDK,确定后PlanAhead开始启动SDK软件。上图可以看到system.xml文件包含了硬件平台的配置信息。ps7_init.c和ps7_init.h中包含了处理器平台硬件的初始化s设置。7)接通Zedboard的电源,目前处于等待JTAG变成状态,只有电源指示LED(LD13)变亮。打开一个串口监视,这里用Putty来监视,波特率115200、数据位8位、停止位1位、奇偶校验无。8)选择File-New-XilinxCProject,弹出窗口建立一个hello_world的例程9)完成之后现在建立了一个Hello_world的小程序,并且自动编译。编译完成后右键点击hello_world_0,选择Runas-LaunchonHardware将程序下载到Zedboard。下载完成后程序执行在串口监视窗口会输出“Helloworld”。一个简单的ARMCortex-A9内核的系统已经建立,可以进行软件开发了。小结介绍JTAG方式启动Zedboard。演示用Xilinx设计工具ISEDesignsuite14.1进行Zynq开发的设计下载和验证,利用Zynq芯片的PS部分独立建立了一个简单的嵌入式系统。接下来将结合PS和PL逻辑建立一个功能更灵活的系统。参考资料ZedboardFPGA开发板Zedboard嵌入式系统设计指南Zedboard入门手册Zedboard硬件用户手册Zedboard社区Digileng德致伦Xilinx赛灵思