学习入门.ppt

上传人:本田雅阁 文档编号:2846825 上传时间:2019-05-27 格式:PPT 页数:55 大小:2.97MB
返回 下载 相关 举报
学习入门.ppt_第1页
第1页 / 共55页
学习入门.ppt_第2页
第2页 / 共55页
学习入门.ppt_第3页
第3页 / 共55页
学习入门.ppt_第4页
第4页 / 共55页
学习入门.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《学习入门.ppt》由会员分享,可在线阅读,更多相关《学习入门.ppt(55页珍藏版)》请在三一文库上搜索。

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

2、,以及嵌入式硬件结构具有很强的实时反应能力; 软硬件一体化,嵌入式系统和具有应用有机地结合在一起,它的升级换代也与具体产品同步进化; 软件固化,嵌入式系统的软件代码一般都固化在只读存储器或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。,2.Xilinx的XPS和SDK开发环境介绍 2.1XPS的图形界面,2.2 工程信息域窗口 工程信息域窗口包含3个子窗口:工程子窗口(Project)、应用子窗口(Applications)、IP核目录子窗口(IP Catalog)。 (1)工程子窗口 设计包含的文件信息 设计属性信息 参考文件信息 (2)应用子窗口 应用属性 编译器属性 源代

3、码 库文件,2.2 工程信息域窗口(续) (3)IP核目录子窗口,2.3 编辑窗口 编辑窗口主要是System Assembly View文件窗口,其包含: Bus Interface窗口 Ports窗口 Addresses窗口,2.4 日志窗口 Output:显示所有的信息 Warnings:显示警告信息 Errors:显示错误信息,2.4.2MHS文件结构 (1)参数版本定义:PARAMENT VERSION=2.1.0 (2)外部端口定义: PORT sys_clk_pin=dcm_clk_s,DIR=I,SIGIS=DCMCLK 这行标明工程的顶层有一个信号,名称是sys_clk_pi

4、n,它连接到工程内部网络表信号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)以及其他特性参数。然后是定义子模块的接口信号。,2.4.3MSS文件结

5、构 (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

6、= 1.00.a PARAMETER HW_INSTANCE = dlmb_cntlr END,2.4.4UCF文件结构 (1)指定管脚类型和位置: Net sys_clk_pin LOC=c9; Net sys_clk_pin IOSTANDARD = LVCMOS33; Net sys_clk_pin PULLDOWN; 第一行指定引脚在芯片上的位置;第二行将引脚的物理特性指定为LVMOS33(3.3V的LVCMOS规范),第三行指定引脚需要芯片内部上位。 (2)指定时钟约束: TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 20000 ps; 描

7、述时钟管脚输入的时钟频率为50MHz。,2.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和p

8、rogram两个命令中的1,这代表需要编程的器件是JTAG链上的第一个器件。,2.5 SDK图形界面,3 Microblaze处理器的总线介绍 Microblaze处理器的总线主要有: OPB总线,用于访问外设,包括存储器、GPIO等设备,使用范围广泛,多用于连接对速率要求较低的设备,如HDLC、10/100M以太网等,虽然也可以连接如DDR等快速外设,但效率并不高。 LMB总线,专用于连接Microblaze与FPGA内部的BlockRAM,高速总线; Cache Link,专用于连接Microblaze与用做Cache的外部存储器,快速总线,一般用FSL总线实现。 而在EDK10.1版本以

9、后,用PLB总线代替了OPB总线。PLB效率远高于OPB,在设计时,需要较大吞吐量的外设(如DDR、GMAC等)都通过PLB连接。不同的总线有不同的控制端口,和自己独特的时序操作,使其应用于相应的场合。,4 用XPS向导创建EDK的最小系统 点击桌面上的Xilinx Platform Studio,系统会自动出现如下对话框:,点击OK后,系统会自动出现如下对话框:,此对话框是设置工程路径。设置完毕后会出现如下对话框:,点击NEXT,出现如下对话框:,在如下面两个选项里,第一项是选择Xilinx定制的开发板,第二项是选择用户自定制的开发板, 在这里我们选择第一项,然后点击Next。并进行如下设置

10、: 在 Board Vendor(生产厂家)选项栏中选择:Xilinx 在 Board Name 选项栏中选择:Spartan-3E Starter Board 在 Board Revision(版本号)选项栏中选择:C,点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框:,点击Next,你将看到处理器选择对话框,默认设置,继续点击NEXT,将出现如下对话框:按照下面要求选择 设置: 参考时钟频率:50 MHz 这是开发板上的外部时钟。这个时钟用来产生处理器和总线时钟。时钟频率的高低主要取决于FPGA或主板,因为一定的片上资源的可以对时钟进行分频或倍频。 处理

11、器时钟频率(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,单击Next,选择外设,由于仅仅是最小系统,故只选择选择LEDs_8Bit (OPB_GPIO, no interrupt)来进行控制,选择RS232_DCE

12、 (115200 baud rate, no parity,no interrupt)作为串口运用超级终端进行调试。,之后设置添加外部设备(Add Internal Peripherals)对话框,这里不添加, 故单击Next。然后设置软件安装(Software Setup)对话框,选择Memory Test,不选择Peripheral SelfTest 。点击Next ,您将会看到设置内存测试应用对话框,默认设置即可,单击 Next 按钮您将看到建立系统(System Created)对话框,显示系统信息摘要,点击Generate ,将会显示一个祝贺画面,指示工程已经成功创建。,单击结束(F

13、inish)按钮成功的生成一个工程。你将会看到下一步对话框,选择Start Using Platform Studio,点击OK 。 将会出现一个系统总体图,图上有系统外围,总线以及系统间的连接。,至此,最小系统创建完毕。,下面讲解如何在硬件上验证(以Test_memory工程为例) 完成上述步骤后,打开UCF文件,如果是用户自定制的开发板,则需要编写ucf文件,对于Xilinx定制的开发板,其会根据前面的设置自行生成相应的ucf文件。 在设置完UCF后,点击Hardware Generate Bitstream选项,生成硬件比特流。,硬件Bit文件生成后,然后就是软件开发的流程。如下图点击S

14、oftware Generate Libraries and BSP,系统会自动生成整个系统的驱动程序。,在驱动程序生成后,然后对应用软件做编译,现在先讲解在XPS中进行编译。如下图,对于Test_memory工程,系统已经生成了可应用的程序如下:,然后打开超级终端软件,准备开始调试软件,如下图所示。,命名并确定, 然后设定串口的参数和开发板一致,如下图,点击确定,当软件编译完成后,要生成可以下载的download.bit文件,这个Bit流文件和前面system.bit文件是不同的,它包含硬件bit流文件和应用软件的bit流文件的信息。,这时超级终端会打印出如下的信息。,为硬件设计添加 IP实

15、验 XPS 提供两种方法来添加到已存在的工程中。你可以用第一种方法,通过系统体视图页面来添加绝大部分附加IP并连接它们。第二种方法是手工编写MHS 文件。此方法需对 MHS 文件以及 IP 的结构有较深了解得。 选择窗口左边的 IP目录标签,点击 General Purpose IO上的加号查看在它下面的IP核,双击XPS General Purpose IO图标,添加实例到系统体视图。 把添加的外围实例更名为data_out,通过在文件名上点击鼠标一次,就可以任意输入字符作为外围的新名称。 点击 Bus Interface过滤器上的加号.在 Bus Connection竖线上点击一下,选择d

16、ata_out的 SPLB中选择 mb_plb。,选择 Addresses 过滤器。你可以人为的分配基址,指定外设的地址空间大小,你还可以通过 XPS自动分配地址。点击Generate Addressest选择系统自动分配基址和外设的最高地址。在data_out图标下,点击size图标,你可以将其更改为64K。,使用Ports过滤器来为data_out连接必要的端口。你首先确定实例的参数,然后连接外部引脚。 双击data_out图标进入配置窗口,注意:外设可以分配给两个信道,但是由于我们只用到一个所以 Enable Channel 2不选。点击common GPIO Data Bus Widt

17、h 一栏向下箭头,设置为8,然后点OK。其是将GPIO接口的数据设置为8位。,点击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 inpu

18、t Only 为False是设置GPIO口为输入输出双向口。,至此,添加系统自带的IP核已经介绍完毕,6 添加自定制IP实验 1. 点击 XPS中的 Hardware Create or Import Peripheral,打开向导 2. 点击 Next 将开始 Create and Import Peripheral Wizards 流程,3. 在选择流程页面,选择 Create templates for a new peripheral ,点击 Next,To an XPS project ,已经自动选择好了,工程的路径也已经设置好了,默认设置就行。,4. 点击 Next ,在文件名一栏

19、键入 lcd_ip,版本默认为 1.00.a,点击 Next。,5. 在总线接口界面,选择 Peripheral Bus (OPB),点击 Next,继续在向导选择 select User Logic S/W Register support。选择一个可寻址 32位寄存器。 1.在 IPIF Services页面,选择 User Logic S/W Register Support,点击 Next。,2. 在 User S/W Register 页面,选择 “Disable posted write” ,点击 Next, 保持默认寄存器设置值。,3. 拖动 IP Interconnect (I

20、PIC)页面滚动条,里面显示基于用户当前选择的默认 IPIC信号。,在 (OPTIONAL) Peripheral Simulation Support页面,不要选择 Generate BFM simulation platform 一项,点击 Next 在 (OPTIONAL) Peripheral Implementation Options(外设实现选项) 页面,只选择 Generate template driver files to help you to implement software interface ,其它的都不选。,点击 Next ,将会出现综合信息页面。点击 Fin

21、ish 关闭向导 在 XPS中,点击 IP Catalog 图标,可以发现 lcd_ip 已经添加到 Project Repository(工程库)目录下。,添加名为 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. 保存文件并关闭文件,用文本编辑器打开 lcd_

22、ip.vhd 和 user_logic.vhd文件,路径为 C:xupembeddedlabslab3pcoreslcd_ip_v1_00_ahdlvhdl 。添加必要的声明和逻辑到lcd_ip.vhd 和 user_logic.vhd文件。 1. 浏览到 pcores lcd_ip_v1_00_ahdlvhdl 目录。 2. 选择 lcd_ip.vhd 文件并用文本编辑器打开。 3. 在 USER ports added here token 下面添加 7位的 lcd,4. 找到下一处 -USER ,添加端口声明,保存并关闭文件。,5. 从 vhdl目录下打开 user_logic.vhd

23、文件,在用户端口区域添加 lcd 。,6. 在到下一次 -USER , 并为用户逻辑做内部信号声明。,7. 找到 USER logic implementation 添加如下代码或者下面复制粘贴过去。,8. 保存改动,并关闭 user_logic.vhd 。接下来就可以把其当做系统自带的IP进行调用了,7 创建基本应用程序 在软件开发之前,应在 Software Platform Settings下设置软件开发环境。 选择 Software Software Platform Settings,选择 Software Platform 标签,检校下列参数。,选择 OS and Librarie

24、s 标签,确认 stdin 和 stdout选择 RS232_DCE., microblaze_exceptions 和 enable_sw_intrusive_profiling 的 Current Value 一项选 false,其它的都按下图所示的设置。,在 Drivers(驱动)部分,检查确认系统中的各个外设的驱动。,在 Interrupt Handlers (中断管理)部分,注意所有的外设都应该是没有中断,因为本设计中没有外设支持中断。 点击 OK 保存设置,编程时可以通过View API Documentation 查看外设的C语言函数驱动。 在 System Assembly V

25、iew (系统体视图)中,右击 LEDs_8Bit外设,选择 Driver: gpio_v2_01_a View API Documentation,学习xgpio.h文件。在软件应用中必须进行如下操作,才能对 GPIO进行读/写: 1) GPIO初始化 2) 设置数据方向 3)读/写数据,XGpio_Initialize (XGpio *InstancePtr, Xuint16 DeviceId) InstancePtr 是 Xgpio实例的指针 。指针指向的地址必须通过调用者进行预先分配。 以后通过 XGpio API操作必须由此指针构成。 DeviceId 是XGpio 组件控制的器件的

26、唯一识别号。通过识别号,可以在调用或升级 应用时通过识别号将Xgpio类型实例调用到一个特定的器件。 XGpio_SetDataDirection (XGpio * InstancePtr, unsigned Channel, Xuint32 DirectionMask) InstancePtr 是指向将要使用的 Xgpio实例的指针。 Channel 是GPIO(1或 2)将要工作的信道。 DirectionMask是离散信号输入输出标志位。0表示输出,1表示输入。 XGpio_DiscreteWrite (XGpio *InstancePtr, unsigned channel, Xuin

27、t32 data) InstancePtr. 是指向将要使用的Xgpio实例的指针。 Channel是 GPIO(1或 2)将要工作的信道。 Data 写入离散寄存器中的数据,介绍一下led控制程序,8 系统的设计完善 对于一个完整的SOPC系统,在完成了软件部分的开发后,还应该将生成的包含.elf文件的SDK工程添加到XPS中,其添加操作过程如下:在Application下点击Add Software Application Project,会出现一个对话框,对工程命名并设置路径,点击OK即可。,而后根据需要可以进行如下两种完善: 如果是只是运用SOPC系统,则可生成软硬件比特流,下载到板子

28、上进行验证设计,其操作如下:1)生成软硬件比特流:Device ConfigurationUpdate 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源文件中。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1