EDK入门学习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

EDK学习入门2010.7.21大学生创新活动基地1.绪论1.1嵌入式系统的定义嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁剪的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。随着移动多媒体、数字娱乐、手机、终端汽车电子等领域的迅速发展,手机、便携式多媒体设备、家庭娱乐用音视频产品的嵌入式解决方案越来越流行。可以说,未来十年内,嵌入式系统将继续保持高增长态势。1.2嵌入式系统的特点高可靠性,在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;实时性,许多嵌入式应用有此需求,要求嵌入式操作系统具有实时处理能力,以及嵌入式硬件结构具有很强的实时反应能力;软硬件一体化,嵌入式系统和具有应用有机地结合在一起,它的升级换代也与具体产品同步进化;软件固化,嵌入式系统的软件代码一般都固化在只读存储器或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。2.Xilinx的XPS和SDK开发环境介绍2.1XPS的图形界面2.2工程信息域窗口工程信息域窗口包含3个子窗口:工程子窗口(Project)、应用子窗口(Applications)、IP核目录子窗口(IPCatalog)。(1)工程子窗口设计包含的文件信息设计属性信息参考文件信息(2)应用子窗口应用属性编译器属性源代码库文件2.2工程信息域窗口(续)(3)IP核目录子窗口2.3编辑窗口编辑窗口主要是SystemAssemblyView文件窗口,其包含:BusInterface窗口Ports窗口Addresses窗口2.4日志窗口Output:显示所有的信息Warnings:显示警告信息Errors:显示错误信息2.4.2MHS文件结构(1)参数版本定义:PARAMENTVERSION=2.1.0(2)外部端口定义:PORTsys_clk_pin=dcm_clk_s,DIR=I,SIGIS=DCMCLK这行标明工程的顶层有一个信号,名称是sys_clk_pin,它连接到工程内部网络表信号dcm_clk_s,是一个输入信号(DIR=I),并且连接到DCM模块(SIGIS=DCMCLK)(3)子模块定义:BEGINmicroblazePARAMETERINSTANCE=microblaze_0PARAMETERHW_VER=4.00.a……PORTCLK=sys_clk_sPORTDBG_CAPTURE=DBG_CAPTURE_s……END首先定义子模块使用的IP核名称(microblaze),然后例化名称(microblaze_0)、版本(4.00.a)以及其他特性参数。然后是定义子模块的接口信号。2.4.3MSS文件结构(1)参数版本定义:PARAMENTVERSION=2.2.0(2)操作系统定义:BEGINOSPARAMETEROS_NAME=standalonePARAMETEROS_VER=2.00.aPARAMETERPROC_INSTANCE=microblaze_0PARAMETERSTDIN=RS232_DTEPARAMETERSTDOUT=RS232_DTEEND(SIGIS=DCMCLK)(3)驱动程序定义:BEGINDRIVERPARAMETERDRIVER_NAME=bramPARAMETERDRIVER_VER=1.00.aPARAMETERHW_INSTANCE=dlmb_cntlrEND2.4.4UCF文件结构(1)指定管脚类型和位置:Netsys_clk_pinLOC=c9;Netsys_clk_pinIOSTANDARD=LVCMOS33;Netsys_clk_pinPULLDOWN;第一行指定引脚在芯片上的位置;第二行将引脚的物理特性指定为LVMOS33(3.3V的LVCMOS规范),第三行指定引脚需要芯片内部上位。(2)指定时钟约束:TIMESPECTS_sys_clk_pin=PERIODsys_clk_pin20000ps;描述时钟管脚输入的时钟频率为50MHz。2.4.5CMD文件结构CMD文件基本内容如下:setMode-bscansetCable-pautoidentifyassignfile-p1-fileimplementation/download.bitprogram-p1Quit设置编程模式为边界扫描模式(setMode)设置编程电缆类型为自动检测(setCable)识别目标板上有几个可编程的器件(identify)指定编程使用的比特流文件(assignfile)编程器件选择(program)一般CMD文件修改的比较多的部分是assignfile和program两个命令中的1,这代表需要编程的器件是JTAG链上的第一个器件。2.5SDK图形界面3Microblaze处理器的总线介绍Microblaze处理器的总线主要有:OPB总线,用于访问外设,包括存储器、GPIO等设备,使用范围广泛,多用于连接对速率要求较低的设备,如HDLC、10/100M以太网等,虽然也可以连接如DDR等快速外设,但效率并不高。LMB总线,专用于连接Microblaze与FPGA内部的BlockRAM,高速总线;CacheLink,专用于连接Microblaze与用做Cache的外部存储器,快速总线,一般用FSL总线实现。而在EDK10.1版本以后,用PLB总线代替了OPB总线。PLB效率远高于OPB,在设计时,需要较大吞吐量的外设(如DDR、GMAC等)都通过PLB连接。不同的总线有不同的控制端口,和自己独特的时序操作,使其应用于相应的场合。4用XPS向导创建EDK的最小系统点击桌面上的XilinxPlatformStudio,系统会自动出现如下对话框:点击OK后,系统会自动出现如下对话框:此对话框是设置工程路径。设置完毕后会出现如下对话框:点击NEXT,出现如下对话框:在如下面两个选项里,第一项是选择Xilinx定制的开发板,第二项是选择用户自定制的开发板,在这里我们选择第一项,然后点击Next。并进行如下设置:•在BoardVendor(生产厂家)选项栏中选择:Xilinx•在BoardName选项栏中选择:Spartan™-3EStarterBoard•在BoardRevision(版本号)选项栏中选择:C点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框:点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框:按照下面要求选择设置:•参考时钟频率:50MHz这是开发板上的外部时钟。这个时钟用来产生处理器和总线时钟。时钟频率的高低主要取决于FPGA或主板,因为一定的片上资源的可以对时钟进行分频或倍频。•处理器时钟频率(ProcessorClockFrequency):50MHz•处理器总线时钟频率(ProcessorBusClockFrequency):50MHz•调试接口(DebugInterface):On-chipH/Wdebugmodule•本地数据指令存储空间(LocalDataandInstructionMemory):8KB•Cache使能(CacheEnabled):unchecked单击Next,选择外设,由于仅仅是最小系统,故只选择选择LEDs_8Bit(OPB_GPIO,nointerrupt)来进行控制,选择RS232_DCE(115200baudrate,noparity,nointerrupt)作为串口运用超级终端进行调试。之后设置添加外部设备(AddInternalPeripherals)对话框,这里不添加,故单击Next。然后设置软件安装(SoftwareSetup)对话框选择MemoryTest,不选择PeripheralSelfTest。点击Next,您将会看到设置内存测试应用对话框,默认设置即可单击Next按钮您将看到建立系统(SystemCreated)对话框,显示系统信息摘要点击Generate,将会显示一个祝贺画面,指示工程已经成功创建。单击结束(Finish)按钮成功的生成一个工程。你将会看到下一步对话框,选择StartUsingPlatformStudio,点击OK。将会出现一个系统总体图,图上有系统外围,总线以及系统间的连接。至此,最小系统创建完毕。下面讲解如何在硬件上验证(以Test_memory工程为例)完成上述步骤后,打开UCF文件,如果是用户自定制的开发板,则需要编写ucf文件,对于Xilinx定制的开发板,其会根据前面的设置自行生成相应的ucf文件。在设置完UCF后,点击Hardware→GenerateBitstream选项,生成硬件比特流。硬件Bit文件生成后,然后就是软件开发的流程。如下图点击Software→GenerateLibrariesandBSP,系统会自动生成整个系统的驱动程序。在驱动程序生成后,然后对应用软件做编译,现在先讲解在XPS中进行编译。如下图对于Test_memory工程,系统已经生成了可应用的程序如下:然后打开超级终端软件,准备开始调试软件,如下图所示。命名并确定,然后设定串口的参数和开发板一致,如下图,点击确定当软件编译完成后,要生成可以下载的download.bit文件,这个Bit流文件和前面system.bit文件是不同的,它包含硬件bit流文件和应用软件的bit流文件的信息。这时超级终端会打印出如下的信息。5为硬件设计添加IP实验XPS提供两种方法来添加到已存在的工程中。你可以用第一种方法,通过系统体视图页面来添加绝大部分附加IP并连接它们。第二种方法是手工编写MHS文件。此方法需对MHS文件以及IP的结构有较深了解得。①选择窗口左边的IP目录标签,点击GeneralPurposeIO上的加号查看在它下面的IP核②双击XPSGeneralPurposeIO图标,添加实例到系统体视图。把添加的外围实例更名为data_out,通过在文件名上点击鼠标一次,就可以任意输入字符作为外围的新名称。③点击BusInterface过滤器上的加号.在BusConnection竖线上点击一下,选择data_out的SPLB中选择mb_plb。④选择Addresses过滤器。你可以人为的分配基址,指定外设的地址空间大小,你还可以通过XPS自动分配地址。点击GenerateAddressest选择系统自动分配基址和外设的最高地址。在data_out图标下,点击size图标,你可以将其更改为64K。⑤使用Ports过滤器来为data_out连接必要的端口。你首先确定实例的参数,然后连接外部引脚。双击data_out图标进入配置窗口,注意:外设可以分配给两个信道,但是由于我们只用到一个所以EnableChannel2不选。点击common→GPIODataBusWidth一栏向下箭头,设置为8,然后点OK。其是将GPIO接口的数据设置为8位。点击Channel1的前面两个参数向下按钮,分别设置Channel1isBi-directional为False,Channel1isinputOnly为True,如图4-11所示,点击OK确认。这样是设置GPIO口为输入口;同样设置Channel1isBi-directional为False,Channel1isinputOnly为False是设置GPIO口为输出口;设置Channel1isBi-directional为True,Channel1isinputOnly为False是设置GPIO口为输入输出双向口。至此,添加系统自带的IP核已经介绍完毕6添加自定制IP实验1.点击XPS中的Hardware→CreateorImportPeripheral,打开向导2.点击Next将开始CreateandImportPeripheralWizard’s流程3.在选择流程页面,选择Createtemplatesforanewperipheral,

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功