首页 EDK学习入门

EDK学习入门

举报
开通vip

EDK学习入门nullEDK学习入门EDK学习入门2010.7.21 大学生创新活动基地1.绪论1.绪论1.1 嵌入式系统的定义 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁剪的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 随着移动多媒体、数字娱乐、手机、终端汽车电子等领域的迅速发展,手机、便携式多媒体设备、家庭娱乐用音视频产品的嵌入式解决方案越来越流行。可以说,未来十年内,嵌入式系统将继续保持高增长态势。 null1.2 嵌入式系统的特点 高可靠性,在恶劣...

EDK学习入门
nullEDK学习入门EDK学习入门2010.7.21 大学生创新活动基地1.绪论1.绪论1.1 嵌入式系统的定义 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁剪的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 随着移动多媒体、数字娱乐、手机、终端汽车电子等领域的迅速发展,手机、便携式多媒体设备、家庭娱乐用音视频产品的嵌入式解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 越来越流行。可以说,未来十年内,嵌入式系统将继续保持高增长态势。 null1.2 嵌入式系统的特点 高可靠性,在恶劣的环境或突然断电的情况下,系统仍然能够正常工作; 实时性,许多嵌入式应用有此需求,要求嵌入式操作系统具有实时处理能力,以及嵌入式硬件结构具有很强的实时反应能力; 软硬件一体化,嵌入式系统和具有应用有机地结合在一起,它的升级换代也与具体产品同步进化; 软件固化,嵌入式系统的软件代码一般都固化在只读存储器或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。null2.Xilinx的XPS和SDK开发环境介绍 2.1XPS的图形界面 null2.2 工程信息域窗口 工程信息域窗口包含3个子窗口:工程子窗口(Project)、应用子窗口(Applications)、IP核目录子窗口(IP Catalog)。 (1)工程子窗口 设计包含的文件信息 设计属性信息 参考文件信息 (2)应用子窗口 应用属性 编译器属性 源代码 库文件nullnull2.2 工程信息域窗口(续) (3)IP核目录子窗口 null2.3 编辑窗口 编辑窗口主要是System Assembly View文件窗口,其包含: Bus Interface窗口 Ports窗口 Addresses窗口 nullnull2.4 日志窗口 Output:显示所有的信息 Warnings:显示警告信息 Errors:显示错误信息null2.4.2MHS文件结构 (1)参数版本定义:PARAMENT VERSION=2.1.0 (2)外部端口定义: PORT sys_clk_pin=dcm_clk_s,DIR=I,SIGIS=DCMCLK 这行标明工程的顶层有一个信号,名称是sys_clk_pin,它连接到工程内部网络表信号dcm_clk_s,是一个输入信号(DIR=I),并且连接到DCM模块(SIGIS=DCMCLK) (3)子模块定义: BEGIN microblaze PARAMETER INSTANCE=microblaze_0 PARAMETER HW_VER=4.00.a …… PORT CLK= sys_clk_s PORT DBG_CAPTURE= DBG_CAPTURE_s …… END 首先定义子模块使用的IP核名称( microblaze ),然后例化名称(microblaze_0)、版本(4.00.a)以及其他特性参数。然后是定义子模块的接口信号。 null2.4.3MSS文件结构 (1)参数版本定义:PARAMENT VERSION=2.2.0 (2)操作系统定义: BEGIN OS PARAMETER OS_NAME = standalone PARAMETER OS_VER = 2.00.a PARAMETER PROC_INSTANCE = microblaze_0 PARAMETER STDIN = RS232_DTE PARAMETER STDOUT = RS232_DTE END(SIGIS=DCMCLK) (3)驱动程序定义: BEGIN DRIVER PARAMETER DRIVER_NAME = bram PARAMETER DRIVER_VER = 1.00.a PARAMETER HW_INSTANCE = dlmb_cntlr ENDnull2.4.4UCF文件结构 (1)指定管脚类型和位置: Net sys_clk_pin LOC=c9; Net sys_clk_pin IOSTANDARD = LVCMOS33; Net sys_clk_pin PULLDOWN; 第一行指定引脚在芯片上的位置;第二行将引脚的物理特性指定为LVMOS33(3.3V的LVCMOS 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ),第三行指定引脚需要芯片内部上位。 (2)指定时钟约束: TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 20000 ps; 描述时钟管脚输入的时钟频率为50MHz。 null2.4.5 CMD文件结构 CMD文件基本 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 如下: setMode -bscan setCable -p auto identify assignfile -p 1 -file implementation/ download.bit program -p 1 Quit 设置编程模式为边界扫描模式(setMode) 设置编程电缆类型为自动检测(setCable) 识别目标板上有几个可编程的器件(identify) 指定编程使用的比特流文件(assignfile) 编程器件选择(program) 一般CMD文件修改的比较多的部分是assignfile和program两个命令中的1,这代表需要编程的器件是JTAG链上的第一个器件。null2.5 SDK图形界面null3 Microblaze处理器的总线介绍 Microblaze处理器的总线主要有: OPB总线,用于访问外设,包括存储器、GPIO等设备,使用范围广泛,多用于连接对速率要求较低的设备,如HDLC、10/100M以太网等,虽然也可以连接如DDR等快速外设,但效率并不高。 LMB总线,专用于连接Microblaze与FPGA内部的BlockRAM,高速总线; Cache Link,专用于连接Microblaze与用做Cache的外部存储器,快速总线,一般用FSL总线实现。 而在EDK10.1版本以后,用PLB总线代替了OPB总线。PLB效率远高于OPB,在设计时,需要较大吞吐量的外设(如DDR、GMAC等)都通过PLB连接。不同的总线有不同的控制端口,和自己独特的时序操作,使其应用于相应的场合。null4 用XPS向导创建EDK的最小系统 点击桌面上的Xilinx Platform Studio,系统会自动出现如下对话框:点击OK后,系统会自动出现如下对话框:null此对话框是设置工程路径。设置完毕后会出现如下对话框:null点击NEXT,出现如下对话框:在如下面两个选项里,第一项是选择Xilinx定制的开发板,第二项是选择用户自定制的开发板, 在这里我们选择第一项,然后点击Next。并进行如下设置: • 在 Board Vendor(生产厂家)选项栏中选择:Xilinx • 在 Board Name 选项栏中选择:Spartan™-3E Starter Board • 在 Board Revision(版本号)选项栏中选择:C null 点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框: 点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框:按照下面要求选择 设置: •参考时钟频率:50 MHz 这是开发板上的外部时钟。这个时钟用来产生处理器和总线时钟。时钟频率的高低主要取决于FPGA或主板,因为一定的片上资源的可以对时钟进行分频或倍频。 •处理器时钟频率(Processor Clock Frequency):50 MHz •处理器总线时钟频率(Processor Bus Clock Frequency):50 MHz •调试接口(Debug Interface):On-chip H/W debug module •本地数据指令存储空间(Local Data and Instruction Memory):8 KB •Cache 使能(Cache Enabled): unchecked null单击Next,选择外设,由于仅仅是最小系统,故只选择选择LEDs_8Bit (OPB_GPIO, no interrupt)来进行控制,选择RS232_DCE (115200 baud rate, no parity,no interrupt)作为串口运用超级终端进行调试。之后设置添加外部设备(Add Internal Peripherals)对话框,这里不添加, 故单击Next。然后设置软件安装(Software Setup)对话框 null选择Memory Test,不选择Peripheral SelfTest 。点击Next ,您将会看到设置内存测试应用对话框,默认设置即可null 单击 Next 按钮您将看到建立系统(System Created)对话框,显示系统信息摘要 点击Generate ,将会显示一个祝贺画面,指示工程已经成功创建。null单击结束(Finish)按钮成功的生成一个工程。你将会看到下一步对话框,选择Start Using Platform Studio,点击OK 。 将会出现一个系统总体图,图上有系统外围,总线以及系统间的连接。至此,最小系统创建完毕。null下面讲解如何在硬件上验证(以Test_memory工程为例) 完成上述步骤后,打开UCF文件,如果是用户自定制的开发板,则需要编写ucf文件,对于Xilinx定制的开发板,其会根据前面的设置自行生成相应的ucf文件。 在设置完UCF后,点击Hardware→ Generate Bitstream选项,生成硬件比特流。 硬件Bit文件生成后,然后就是软件开发的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 。如下图点击Software → Generate Libraries and BSP,系统会自动生成整个系统的驱动程序。null 在驱动程序生成后,然后对应用软件做编译,现在先讲解在XPS中进行编译。如下图null 对于Test_memory工程,系统已经生成了可应用的程序如下:然后打开超级终端软件,准备开始调试软件,如下图所示。 null命名并确定, 然后设定串口的参数和开发板一致,如下图,点击确定null 当软件编译完成后,要生成可以下载的download.bit文件,这个Bit流文件和前面system.bit文件是不同的,它包含硬件bit流文件和应用软件的bit流文件的信息。 这时超级终端会打印出如下的信息。null为硬件设计添加 IP实验 XPS 提供两种方法来添加到已存在的工程中。你可以用第一种方法,通过系统体视图页面来添加绝大部分附加IP并连接它们。第二种方法是手工编写MHS 文件。此方法需对 MHS 文件以及 IP 的结构有较深了解得。 ①选择窗口左边的 IP目录标签,点击 General Purpose IO上的加号查看在它下面的IP核 null②双击XPS General Purpose IO图标,添加实例到系统体视图。 把添加的外围实例更名为data_out,通过在文件名上点击鼠标一次,就可以任意输入字符作为外围的新名称。 ③点击 Bus Interface过滤器上的加号.在 Bus Connection竖线上点击一下,选择data_out的 SPLB中选择 mb_plb。 null④选择 Addresses 过滤器。你可以人为的分配基址,指定外设的地址空间大小,你还可以通过 XPS自动分配地址。点击Generate Addressest选择系统自动分配基址和外设的最高地址。在data_out图标下,点击size图标,你可以将其更改为64K。 null⑤使用Ports过滤器来为data_out连接必要的端口。你首先确定实例的参数,然后连接外部引脚。 双击data_out图标进入配置窗口,注意:外设可以分配给两个信道,但是由于我们只用到一个所以 Enable Channel 2不选。点击common→ GPIO Data Bus Width 一栏向下箭头,设置为8,然后点OK。其是将GPIO接口的数据设置为8位。 null点击Channel1的前面两个参数向下按钮,分别设置Channel 1 is Bi-directional为 False ,Channel 1 is input Only 为 True,如图4-11所示,点击 OK确认。这样是设置GPIO口为输入口;同样设置Channel 1 is Bi-directional为 False ,Channel 1 is input Only 为False是设置GPIO口为输出口;设置Channel 1 is Bi-directional为True ,Channel 1 is input Only 为False是设置GPIO口为输入输出双向口。 至此,添加系统自带的IP核已经介绍完毕null6 添加自定制IP实验 1. 点击 XPS中的 Hardware → Create or Import Peripheral,打开向导 2. 点击 Next 将开始 Create and Import Peripheral Wizard’s 流程null3. 在选择流程页面,选择 Create templates for a new peripheral ,点击 Next,To an XPS project ,已经自动选择好了,工程的路径也已经设置好了,默认设置就行。 null4. 点击 Next ,在文件名一栏键入 lcd_ip,版本默认为 1.00.a,点击 Next。5. 在总线接口界面,选择 Peripheral Bus (OPB),点击 Next null继续在向导选择 select User Logic S/W Register support。选择一个可寻址 32位寄存器。 1.在 IPIF Services页面,选择 User Logic S/W Register Support,点击 Next。 null2. 在 User S/W Register 页面,选择 “Disable posted write…” ,点击 Next, 保持默认寄存器设置值。 null3. 拖动 IP Interconnect (IPIC)页面滚动条,里面显示基于用户当前选择的默认 IPIC信号。 null在 (OPTIONAL) Peripheral Simulation Support页面,不要选择 Generate BFM simulation platform 一项,点击 Next 在 (OPTIONAL) Peripheral Implementation Options(外设实现选项) 页面,只选择 Generate template driver files to help you to implement software interface ,其它的都不选。null点击 Next ,将会出现综合信息页面。点击 Finish 关闭向导 在 XPS中,点击 IP Catalog 图标,可以发现 lcd_ip 已经添加到 Project Repository(工程库)目录下。null添加名为 lcd的端口到 MPD文件,作为 LCD外设的控制信号。 1. 通过 Windows Explorer,在工程目录下浏览 \pcores\ lcd_ip_v1_00_a \data 。 2. 使用编辑器打开 lcd_ip_v2_1_0.mpd 文件。 3. 在 Ports部分, OPB_Clk前面添加如下 表达式:PORT lcd = “ “, DIR = O, VEC = [0:6] 4. 保存文件并关闭文件 null用文本编辑器打开 lcd_ip.vhd 和 user_logic.vhd文件,路径为 C:\xup\embedded\labs\lab3\pcores\lcd_ip_v1_00_a\hdl\vhdl 。添加必要的声明和逻辑到lcd_ip.vhd 和 user_logic.vhd文件。 1. 浏览到 \pcores\ lcd_ip_v1_00_a\hdl\vhdl 目录。 2. 选择 lcd_ip.vhd 文件并用文本编辑器打开。 3. 在 USER ports added here token 下面添加 7位的 lcdnull4. 找到下一处 --USER ,添加端口声明,保存并关闭文件。 5. 从 vhdl目录下打开 user_logic.vhd 文件,在用户端口区域添加 lcd 。null6. 在到下一次 --USER , 并为用户逻辑做内部信号声明。null7. 找到 –USER logic implementation 添加如下代码或者下面复制粘贴过去。 8. 保存改动,并关闭 user_logic.vhd 。接下来就可以把其当做系统自带的IP进行调用了null7 创建基本应用程序 在软件开发之前,应在 Software Platform Settings下设置软件开发环境。 ① 选择 Software → Software Platform Settings null②选择 Software Platform 标签,检校下列参数。③选择 OS and Libraries 标签,确认 stdin 和 stdout选择 RS232_DCE., microblaze_exceptions 和 enable_sw_intrusive_profiling 的 Current Value 一项选 false,其它的都按下图所示的设置。 null④在 Drivers(驱动)部分,检查确认系统中的各个外设的驱动。⑤在 Interrupt Handlers (中断管理)部分,注意所有的外设都应该是没有中断,因为本设计中没有外设支持中断。 ⑥点击 OK 保存设置null 编程时可以通过View API Documentation 查看外设的C语言函数驱动。 在 System Assembly View (系统体视图)中,右击 LEDs_8Bit外设,选择 Driver: gpio_v2_01_a →View API Documentation 学习xgpio.h文件。在软件应用中必须进行如下操作,才能对 GPIO进行读/写: 1) GPIO初始化 2) 设置数据方向 3)读/写数据nullXGpio_Initialize (XGpio *InstancePtr, Xuint16 DeviceId) ° InstancePtr 是 Xgpio实例的指针 。指针指向的地址必须通过调用者进行预先分配。 以后通过 XGpio API操作必须由此指针构成。 ° DeviceId 是XGpio 组件控制的器件的唯一识别号。通过识别号,可以在调用或升级 应用时通过识别号将Xgpio类型实例调用到一个特定的器件。 XGpio_SetDataDirection (XGpio * InstancePtr, unsigned Channel, Xuint32 DirectionMask) ° InstancePtr 是指向将要使用的 Xgpio实例的指针。 ° Channel 是GPIO(1或 2)将要工作的信道。 ° DirectionMask是离散信号输入输出标志位。0表示输出,1表示输入。 XGpio_DiscreteWrite (XGpio *InstancePtr, unsigned channel, Xuint32 data) { InstancePtr. 是指向将要使用的Xgpio实例的指针。 { Channel是 GPIO(1或 2)将要工作的信道。 { Data 写入离散寄存器中的数据 null介绍一下led控制程序null8 系统的设计完善 对于一个完整的SOPC系统,在完成了软件部分的开发后,还应该将生成的包含.elf文件的SDK工程添加到XPS中,其添加操作过程如下:在Application下点击Add Software Application Project,会出现一个对话框,对工程命名并设置路径,点击OK即可。 null而后根据需要可以进行如下两种完善: ①如果是只是运用SOPC系统,则可生成软硬件比特流,下载到板子上进行验证设计,其操作如下:1)生成软硬件比特流:Device Configuration→Update Bitstream;2)下载比特流:Device Configuration→ Download Bitstream。 ②如果是要输出EDK设计到ISE中,则需进行如下操作: 1)EDK工程默认都是作为顶层模块,在这里改成子模块,如果保持EDK工程为顶层模块,最后生成的子目录中将没有任何文件。 2)打开ISE工程导航,为用户顶层FPGA设计创建或打开ISE工程。 3)为用户ISE工程选择FPGA器件族、封装和速率等级,这些属性和嵌入式子模块中位ISE工程指定的属性相同。 4)选择“Project”→“Add Source”打开添加源的窗口。 5)在“Add Exiting Sources”对话框中,为嵌入式子模块选择XMP格式的XPS工程文件。用户的XPS子模块将在工程面板中源的位置出现。 6)选择XMP源并运行“View HDL Instantiation Template”来产生HDL模板样例,模板中的HDL部分可以复制到用户顶层HDL源文件中。
本文档为【EDK学习入门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_883872
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-08-26
浏览量:60