当前位置:文档之家› Xilinx EDK官方试验4mb

Xilinx EDK官方试验4mb

Xilinx EDK官方试验4mb
Xilinx EDK官方试验4mb

试验4

创建基本应用程序

介绍

在这个实验中我们创建一个基本的应用程序。通过这个程序控制以GPIO 为连接IP的LED

接口上去。实验中,通过LibGen创建MSS文件。

目的

完成本次实验,我们希望达到以下目标:

?编写一个访问外围设备IP基本应用程序

?利用XPS生成一个MSS文件

?生成一个位文件

?下载并在硬件上进行检验

步骤

前三个实验为处理器系统定义了硬件。这个实验由几个步骤组成,包括访问一个外设的基

本应用软件的编写。

打开工程步骤1

创建在d:\Lab\下创建lab4mb文件夹。可以按照前三个实验的流程创建一个工程,也

可以直接把lab3mb内的文件拷贝至此目录。打开该工程。

创建 BSP 步骤2

n双击microblaze_0 ,打开Software Platform Settings对话框,

图 4-1

p在Software Platform标签中, 可以为每一个外设选择驱动级别。同时可以为处理器选择OS内核,这里我们选择standalone。

图 4-2. 处理器设置标签

p点击Processor, Drivers Parameters, an Interrupt Handlers标签并指定以下参数Processor Parameters: Instance

compiler – mb-gcc

archiver – mb-ar

EXTRA_COMPILER_FLAGS – -g

xmdstub_peripheral – none

CORE_CLOCK_FREQ_HZ – 50000000

Driver Parameters: Instance

Leave Blank

图4-3. Processor, Driver Parameters, and Interrupt Handlers 标签

q点击 Library/OS Parameters标签

Figure 10c-4. Library/OS Parameters Tab of the Software Platform Settings for the microblaze_0 Instance

r在Current Value区域中选择RS232为stdin和stdout. 这将指定 UART设备作为基本输入输出端口。其实在我们的lab1mb试验中的Base System Builder 阶段这些就已经做过了如果系统没有要指定为stdin和stdout的设备,则选择 None。因为我们的试验没有用到动态分配内存函数,所以保持need_xil_malloc的value 为 false。

r点击OK

双击System标签下的 system.mss文件打开MSS文件,如下图所示:

图 4-5. 系统标签页

p XPS 已把在外设选项(Peripheral Options)中配置的参数写入了system.mss。

q点击 Tools → Generate Libraries 或按钮,运行LibGen,生成BSP库文件创建基本C程序步骤 3

在Application标签页中添加工程,以实现对数码管的驱动

在Applications标签页中双击Software Projects,打开New Project对话框。

图 4-6.新建应用工程

p输入工程名称MyProj,单击OK.

p点击File → New,建立新的文本

图 4-7. XPS文本编辑器

第一步,为所需的函数添加头文件,所有的头文件都已在LibGen过程中保存在microblaze_0/include 路径下了.

q添加C代码

?#include "xparameters.h"

–定义了系统外设的地址

?#include "xgpio.h"

–定义了Xilinx General Purpose I/O 通用接口所需的API函数

r点击 File → Save As,出现保存对话框

s建立新的文件夹名为code,作为lab4mb工程所需c代码的保存路径

图4-8. 另存为对话框

t把system.c加入工程。

t然后向此c文件添加主函数:

main() {

程序的编写使用C语言,方法与编写通用的单片机程序类似,可采用对地址赋值的方式也可采用API函数的方式。相关的知识可参见EDK附带的各种手册和帮助文档,所有这些内容可在EDK\doc\路径下找到。

n在开始菜单选择Start → Programs → Xilinx Platform Studio 6.3i → Documentation →EDK 6.3 Reference & User Guides

o下拉一些,选择Driver Reference Guide打开xilinx_drivers.htm页面.

o选择Driver API Links打开器件驱动API

r选择gpio v2.00. ,与之相关的API函数帮助内容便可打开。

相关的程序建立我们不再赘述,因为BSB(Base System Buider)向导以主动为我们建立了一个简单的GPIO初始化及读写程序,作如下简单分析:

?XGpio_Initialize初始化函数需要两个参数: InstancePtr 是XGpio 器件的指针(指针的含义参见相关的C语言教程),它指向了XGpio 所对应的端口,若要想熟练

使用XGpio API,则必须掌握好此指针

?DeviceId 器件序号是唯一性的无重复的器件识别号,这个参数可在xparameters.h 文件中找到

s定义一个XGpio类型的变量gp_out. 将被调用为Xgpio_Initialize第一个参数,使用时如下:

XGpio_Initialize(&gp_out,

u双击microblaze_0:Generated Header:xparameters.h 如下

图 4 -9. 双击Generated Header :mi…/in…/xparameters.h头文件

?xparameters.h文件是在LibGen过程中创建的,它提供了各个器件的宏信息。在xparameters.h中找到此条信息

#define XPAR_PUSH_BUTTONS_6BIT_DEVICE_ID 0

?XPAR_PUSH_BUTTONS_6BIT_DEVICE_ID 即可被用作XGpio_Initializ函数的第二个参数

其余的API诸如:XGpio_DiscreteWrite(),XGpio_SetDataDirection等函数都可以参考相关的手册。

接下来,我们不使用系统自创建的程序也不使用API的方式,我们使用简单的地址赋值的方式,即访问硬件的通用方式。此程序可在d:\Lab\labsource\lab4mb.c中拷贝

几个关键地方如下:

上面的插图显示了所需的头文件以及定义了7段数码管的端口地址。

上面的插图显示的内如:Xuint8 类型的指针用以指向7段数码管的端口。

上面的一段程序是模拟时钟的程序,由于microblaze 内部不含Timer/Count ,若要实现时钟功能则必须添加Timer/Count 的IP核或通过软件延时循环来实现,在这里,我们用几个for语句实现了软件延时,以周期性的驱动数码管。指令的执行时间参考microblaze 处理器的使用手册。

运行Tools—>Generate Linker Script

图4-10生成连接脚本文件

点击Generate生成连接脚本文件。

选择Application标签页, 把我们写好的程序拷贝至我们建立的工程下,并右键单击此工程,选择Mark to initialize BRAM.,然后点击编译此工程。

图 4-11. Applications 标签页

下载并测试步骤 5

连接好目标板,创建Bit文件,并下载.

n点击Tools → Download或图标,下载bit文件

—>>若修改了C代码,则重新编译并点击图标,即可更新Bit文件

o下载成功后,数码管会显示时钟

Conclusion

XPS可以用来定义,开发,集成嵌入式系统所需的各种软的硬的组件。可以为各种外设和

接口定制器件驱动,XPS同时创建MSS文件从侧面来描述整个系统的软件构成. 器件的专

用函数如API 都可被编译用来生成目标代码,同时目标代码又可用来生成可立即执行文

件,在已配置好硬件系统的目标板上执行。

完整的MHS 文件

# ############################################################################## # Created by Base System Builder Wizard for Xilinx EDK 7.1 Build EDK_H.10.4

# Sun Jul 24 07:51:44 2005

# Target Board: 依元素科技发展有限公司 DigitalSword-HL-SPⅢ评估板 Rev 1.0

# Family: spartan3

# Device: XC3S200

# Package: PQ208

# Speed Grade: -4

# Processor: Microblaze

# System clock frequency: 50.000000 MHz

# Debug interface: On-Chip HW Debug Module

# On Chip Memory : 8 KB

# ############################################################################## PARAMETER VERSION = 2.1.0

PORT fpga_0_RS232_RX_pin = fpga_0_RS232_RX, DIR = IN

PORT fpga_0_RS232_TX_pin = fpga_0_RS232_TX, DIR = OUT

PORT sys_clk_pin = sys_clk_s, DIR = IN, SIGIS = CLK

PORT sys_rst_pin = sys_rst_s, DIR = IN

PORT Push_Buttons_6Bit_GPIO_in = Push_Buttons_6Bit_GPIO_in, VEC = [0:5], DIR = I

PORT SEGLED_digit = SEGLED_digit, VEC = [0:4], DIR = O

PORT SEGLED_segment = SEGLED_segment, VEC = [0:7], DIR = O

BEGIN microblaze

PARAMETER INSTANCE = microblaze_0

PARAMETER HW_VER = 4.00.a

PARAMETER C_DEBUG_ENABLED = 1

PARAMETER C_NUMBER_OF_PC_BRK = 2

PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1

PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1

BUS_INTERFACE DLMB = dlmb

BUS_INTERFACE ILMB = ilmb

BUS_INTERFACE DOPB = mb_opb

BUS_INTERFACE IOPB = mb_opb

PORT CLK = sys_clk_s

PORT DBG_CAPTURE = DBG_CAPTURE_s

PORT DBG_CLK = DBG_CLK_s

PORT DBG_REG_EN = DBG_REG_EN_s

PORT DBG_TDI = DBG_TDI_s

PORT DBG_TDO = DBG_TDO_s

PORT DBG_UPDATE = DBG_UPDATE_s

END

BEGIN opb_v20

PARAMETER INSTANCE = mb_opb

PARAMETER HW_VER = 1.10.c

PARAMETER C_EXT_RESET_HIGH = 0

PORT SYS_Rst = sys_rst_s

PORT OPB_Clk = sys_clk_s

END

BEGIN opb_mdm

PARAMETER INSTANCE = debug_module

PARAMETER HW_VER = 2.00.a

PARAMETER C_MB_DBG_PORTS = 1

PARAMETER C_USE_UART = 1

PARAMETER C_UART_WIDTH = 8

PARAMETER C_BASEADDR = 0x41400000 PARAMETER C_HIGHADDR = 0x4140ffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT DBG_CAPTURE_0 = DBG_CAPTURE_s PORT DBG_CLK_0 = DBG_CLK_s

PORT DBG_REG_EN_0 = DBG_REG_EN_s

PORT DBG_TDI_0 = DBG_TDI_s

PORT DBG_TDO_0 = DBG_TDO_s

PORT DBG_UPDATE_0 = DBG_UPDATE_s END

BEGIN lmb_v10

PARAMETER INSTANCE = ilmb

PARAMETER HW_VER = 1.00.a

PARAMETER C_EXT_RESET_HIGH = 0

PORT SYS_Rst = sys_rst_s

PORT LMB_Clk = sys_clk_s

END

BEGIN lmb_v10

PARAMETER INSTANCE = dlmb

PARAMETER HW_VER = 1.00.a

PARAMETER C_EXT_RESET_HIGH = 0

PORT SYS_Rst = sys_rst_s

PORT LMB_Clk = sys_clk_s

END

BEGIN lmb_bram_if_cntlr

PARAMETER INSTANCE = dlmb_cntlr

PARAMETER HW_VER = 1.00.b

PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff

BUS_INTERFACE SLMB = dlmb

BUS_INTERFACE BRAM_PORT = dlmb_port END

BEGIN lmb_bram_if_cntlr

PARAMETER INSTANCE = ilmb_cntlr

PARAMETER HW_VER = 1.00.b

PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff

BUS_INTERFACE SLMB = ilmb

BUS_INTERFACE BRAM_PORT = ilmb_port END

BEGIN bram_block

PARAMETER INSTANCE = lmb_bram

PARAMETER HW_VER = 1.00.a

BUS_INTERFACE PORTA = ilmb_port

BUS_INTERFACE PORTB = dlmb_port

END

BEGIN opb_uartlite

PARAMETER INSTANCE = RS232

PARAMETER HW_VER = 1.00.b

PARAMETER C_BAUDRATE = 9600

PARAMETER C_DATA_BITS = 8

PARAMETER C_ODD_PARITY = 0

PARAMETER C_USE_PARITY = 0

PARAMETER C_CLK_FREQ = 50000000

PARAMETER C_BASEADDR = 0x40600000 PARAMETER C_HIGHADDR = 0x4060ffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT RX = fpga_0_RS232_RX

PORT TX = fpga_0_RS232_TX

END

BEGIN opb_gpio

PARAMETER INSTANCE = Push_Buttons_6Bit PARAMETER HW_VER = 3.01.b

PARAMETER C_GPIO_WIDTH = 6

PARAMETER C_ALL_INPUTS = 1

PARAMETER C_BASEADDR = 0x40000000 PARAMETER C_HIGHADDR = 0x4000ffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT GPIO_in = Push_Buttons_6Bit_GPIO_in END

BEGIN opb_timer

PARAMETER INSTANCE = Timer

PARAMETER HW_VER = 1.00.b

PARAMETER C_BASEADDR = 0x41c00000

PARAMETER C_HIGHADDR = 0x41c0ffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT CaptureTrig0 = net_gnd

END

BEGIN opb_7segled

PARAMETER INSTANCE = SEGLED

PARAMETER HW_VER = 1.00.a

PARAMETER C_BASEADDR = 0x800a0000

PARAMETER C_HIGHADDR = 0x800affff

BUS_INTERFACE SOPB = mb_opb

PORT digit = SEGLED_digit

PORT segment = SEGLED_segment

PORT OPB_Clk = sys_clk_s

END

Erwin工具使用指南

Erwin工具使用指南(版本号:V )

文档修订状况

目录 第一章基本概念 (4) 数据模型(Modal) (4) 视图 (4) 逻辑视图(Logical) (4) 物理视图(Physical) (4) 第二章操作指南 (6) 新建模型 (6) 视图切换 (7) 新建主题区域 (7) 切换主题区域 (9) 编辑主题区域 (10) 选择现有数据实体到指定的主题区域。 (10) 在主题区域新建数据实体 (11) 在主题区域删除数据实体 (12) 数据实体导航 (13)

第一章基本概念 1.1数据模型(Modal) 数据模型是数据实体(Entity)和数据实体间的关系(Relationship)总和。可以简单的理解认为数据实体就是对应数据库表,实体间的关系就是表之间的关系。 1.2视图 Erwin对数据模型提供两种视——逻辑视图、物理视图。 1.2.1逻辑视图(Logical) 是以业务需求的概念对数据模型进行描述。通俗的说,在逻辑视图中我们可以用中文或描述性的语言来描述数据实体(表)和数据实体的属性(字段)。下面就是一个对车辆信信息实体的逻辑视图。 1.2.2物理视图(Physical) 物理视图与逻辑视图一一对应,物理视图是针对一种具体的数据库进行逻辑视图的物理映射。通俗的说,在物理视图中我们必须为每一个在逻辑视图中出现的数据实体(表)指定一个可被具体数据库接纳的表名称,譬如我们使用MySQL作为我们的数据库实现,我们就必须为具体的实体指定一个数据库表名(英文单词或词组),同样的对实体属性(字段)的命名也需进行转换,数据类型也需要具体为数据库支持的数据类型。下面就是对应车辆信息实体针对MySQL数据的物理视图。

ERwin使用说明(中英文)

Getting Started with ER win (Erwin 入门) by Dr. Peter Wolcott Department of Information Systems and Quantitative Analysis College of Information Science and Technology University of Nebraska at Omaha(由内布拉斯加州的奥马哈大学信息科学与技术学院门的信息系统和定量分析博士彼得著) Introduction (介绍) ER win is a popular data modeling tool used by a number of major companies in Omaha and throughout the world. (Erwin是受奥马哈和世界各地的一些主要的公司欢迎的数据模型工具) The product is currently owned, developed, and marketed by Computer Associates, a leading software developer.(该产品是由具有领导地位的CA软件开发公司拥有、开发和销售) The product supports a variety of aspects of database design, including data modeling, forward engineering (the creation of a database schema and physical database on the basis of a data model), and reverse engineering (the creation of a data model on the basis of an existing database) for a wide variety of relational DBMS, including Microsoft Access, Oracle, DB2, Sybase, and others.该软件为多种多样的关系型数据库管理系统,包括 Microsoft Access,甲骨文,Sybase,DB2,和其他人提供支持数据库设计的各个方面,包括数据建模、正向工程(在现有的数据模型的基础上创建数据模式和物理数据库)和逆向工程(在现在的数据库基础上创建数据模型) This brief tutorial steps you through the process of creating a data model using ER win.(你可以通过这个简单教程中的步骤运用Erwin来创建数据模 型) It will not explain all aspects of ERwin, but will show you the minimum necessary to create and use data models for this class. (这个课程不可能全面地讲解Erwin,但它向你展示了必要的最基本的创建和使用数据模型的知识) It consists of three major segments, which correspond to the project-related assignments in your class: (这个课程由三个主要部分组成,它与有关项目任务相符) 1.Creation of a basic data model (Conceptual data model) 创建一个 基本的数据模型(概念数据模型) 2.Creation of a database schema 建立数据库模式 3.Creation of the database创建数据库

ERwin简单教程

Erwin教程 erwin是一个数据库关系实体模型(ER Model)设计工具,与Power Designer(Sybase公司开发)成为最常用的两种数据库设计工具。目前该工具被CA收购,成为CA数据库解决方案中的一个关键部分。与微软的Vision相比,erwin只能设计er model,而且设计界面选项较多,相对来说并不那么友好,增加了使用的难度。但如果你是一个出色的数据库应用开发者,那你一定会发现erwin的好处。因为在设计模型层次和复杂度提高以后,visio难以应付众多的数据对象设计和对象之间的关系设计。而且erwin提供了数据库正向工程、逆向工程和文档正向工程功能,可以把设计直接实施到数据库后者把数据库中的对象信息读到erwin设计中,也可以生成设计文档,格式还可以自动定义。在本教程中,将告诉大家我是怎样简单的使用erwin来进行数据库设计的。这里强调了简单二字,就是说有很多只有20%机会用到的80%的功能本教程是不会介绍的。本文用到的erwin版本是4.0。 教程一:Table & Subject Areas Table是数据库中最基本的物理元素,保持了应用的持久数据。在普通的信息系统数据库结构设计中,有90%的工作是在设计table。而table的字段定义和表间的关系,也反映了整个系统的数据流图和大致的业务流程。 Subject Areas是erwin提供逻辑元素,在实际数据库中并不存在。它的含义是把物理元素和逻辑元素按照实际意义划分成各个主题,在主题域中添加对元素的引用,起到一个按图索骥和目录的作用。有一个缺省的主题域Main Subject Area,所有的元素都会在该主题域中存在。在我本人的设计方法中,我会新建诸如“参数表”,“分户表”,“控制表”,“临时表”,“明细表”,“日志表”和“总帐”等主题域。 下面跟着我的说明,一步一步来设计table: 装好erwin4.0后,打开程序。提示你是创建一个新模型还是打一个已有的,选择创建新模型。在Model Type中选择Physical(物理模型),下面的Target Database默认值就是Oracle8.x,使用默认值,点击OK,创建了一个空白的模型。

Erwin工具使用指南

Erwin工具使用指南(版本号:V 1.0)

文档修订状况

目录 第一章基本概念 (4) 1.1 数据模型(Modal) (4) 1.2 视图 (4) 1.2.1 逻辑视图(Logical) (4) 1.2.2 物理视图(Physical) (4) 第二章操作指南 (6) 2.1 新建模型 (6) 2.2 视图切换 (7) 2.3 新建主题区域 (7) 2.4 切换主题区域 (9) 2.5 编辑主题区域 (10) 2.5.1 选择现有数据实体到指定的主题区域。 (10) 2.5.2 在主题区域新建数据实体 (11) 2.5.3 在主题区域删除数据实体 (12) 2.6 数据实体导航 (13)

第一章基本概念 1.1 数据模型(Modal) 数据模型是数据实体(Entity)和数据实体间的关系(Relationship)总和。可以简单的理解认为数据实体就是对应数据库表,实体间的关系就是表之间的关系。 1.2 视图 Erwin对数据模型提供两种视——逻辑视图、物理视图。 1.2.1 逻辑视图(Logical) 是以业务需求的概念对数据模型进行描述。通俗的说,在逻辑视图中我们可以用中文或描述性的语言来描述数据实体(表)和数据实体的属性(字段)。下面就是一个对车辆信信息实体的逻辑视图。 1.2.2 物理视图(Physical) 物理视图与逻辑视图一一对应,物理视图是针对一种具体的数据库进行逻辑视图的物理映射。通俗的说,在物理视图中我们必须为每一个在逻辑视图中出现的数据实体(表)指定一个可被具体数据库接纳的表名称,譬如我们使用MySQL作为我们的数据库实现,我们就必须为具体的实体指定一个数据库表名(英文单词或词组),同样的对实体属性(字段)的命名也需进行转换,数据类型也需要具体为数据库支持的数据类型。下面就是对应车辆信息实体针对MySQL数据的物理视图。

ERWin简明教程

ERWIN操作手册 操作手册 文档修订 版本日期更改人描述(注明修改的条款或页)V1.0 王朝操作手册 2003年9月8日 山东浪潮齐鲁软件产业股份有限公司 电子政务产品事业部

目录 1.通过Erwin 建立er1文件...........................................................................................................2 2用ERWin 的方法将ERWin 中的表导入到数据库中.................................................................6 3用ERWin 的方法将数据库表结构导入到ERWin 中 (18) Erwin 数据库设计工具 介绍 数据库设计错误将会导致在很长一段时间内不断听到各种抱怨,因此,选择 一个适合的数据库开发工具对数据环境进行规范将非常重要 . Erwin 在物理数据库的生成和反向生成、双向同步和比较功能方面居领先地位 ,可以进行逆向工程、能够自动生成文档、支持与数据库同步、支持 团队式 开发,所支持的数据库多达20多种。 Erwin 数据库设计工具可以用于设 计生成客户机/ 服务器、Web 、Intranet 和数据仓库等应用程序数据库。 1.1.通过通过Erwin 建立er1文件文件 在开始\程序菜单中打开Erwin,在Erwin 主窗口中单击create model 图标弹出如下窗口:

在new model type选项中选择physical项,在database中选择oracle类型,version中选择9.x版本,如下图: 点击ok按钮. 1.1建表

Erwin的使用手册

ERwin的使用手册 1. ERwin简介 ERwin是一个数据库关系实体模型(ER Model)设计工具,与Power Designer(Sybase公司开发)成为最常用的两种数据库设计工具。目前该工具被CA收购,成为CA数据库解决方案中的一个关键部分。与微软的Vision相比,ERwin只能设计er model,而且设计界面选项较多,相对来说并不那么友好,增加了使用的难度。但如果你是一个出色的数据库应用开发者,那你一定会发现ERwin的好处。因为在设计模型层次和复杂度提高以后,visio难以应付众多的数据对象设计和对象之间的关系设计。而且ERwin提供了数据库正向工程、逆向工程和文档正向工程功能,可以把设计直接实施到数据库后者把数据库中的对象信息读到ERwin设计中,也可以生成设计文档,格式还可以自动定义。在本教程中,将告诉大家我是怎样简单的使用ERwin来进行数据库设计的。这里强调了简单二字,就是说有很多只有20%机会用到的80%的功能本教程是不会介绍的。本文用到的ERwin版本是4.0。 2.ERwin使用 2.1正向工程 ⑴新建文件,如图1所示: 图1 Logical:只创建逻辑模型 Physical:只创建物理模型 Logical/ Physical:二者均可创建

⑵假设创建逻辑模型,可选择Logical,如图2所示: 工 绘图区 图2 常用的有以下几种: :用于移动; :用于创建实体。 :用于“Complete sub-category” :用于连接。“Identifying relationship”,即为标值关系。注意:先点的为被引用的表,后点的为引用的表。 :用于多对多连接。“Many-to-many relationship”注意:先点的为被引用的表,后点的为引用的表。 :用于连接。“Non- identifying relationship”,即为非标值关系。注意:先点的为被引用的表,后点的为引用的表。

相关主题
文本预览
相关文档 最新文档