EDK实验教程中文翻译lab5mb下.docx
《EDK实验教程中文翻译lab5mb下.docx》由会员分享,可在线阅读,更多相关《EDK实验教程中文翻译lab5mb下.docx(14页珍藏版)》请在冰豆网上搜索。
EDK实验教程中文翻译lab5mb下
软件测试步骤9
总体实验流程图:
下载程序到Spartan-3E开发板中
❶连接并上电
❷选择DeviceConfigurationProgramHardware
设置FPGA,注意超级终端窗口出现的信息,它表示计数值,LEDs应该闪烁。
图5-15超级终端输出
调试使用SDK步骤10
总体实验流程图:
配置目标链接
❶在SDK菜单上点击RunRun…
将会出现一个已经配置的设置汇总页面
❷在Configurations下,选择XilinxC/C++ELF
❸点击New添加一个新的配置环境,命名为sdk_debug
图5-16设置运行配置
❹点击Apply,在点击Run在调试器和目标程序间建立连接。
程序运行后,你将会在超级终端上看见输出。
❺打开控制页面,点击终止按钮(红色按钮)停止运行。
图5-17结束一个正在运行的XMD应用程序
❻点击OK关闭警告
启动调试器调试
❶在SDK菜单中选择RunDebug…
将会出现一个统计页面显示已经启用的配置。
❷点击Debug,如果出现一个对话框询问是否打开调试视图,点击Yes
调试视图将会打开,调试器将会通过XMD自动连接处理器。
处理器将会在主函数的第一个声明前自动暂停。
❸点击Resume按钮,程序将恢复运行
图5-18恢复运行应用程序
❹在Debug窗口,点击Thread[0](Running),Suspend和Terminate按钮将可用。
图5-19暂停一个正在运行的应用程序
❻点击Suspend按钮
❼右击Variables图标,选择AddGlobalVariables…将会显示所有的全局变量,选择count点击OK
❽右击count选择Enable
图5-20变量生效
监控变量和存储表
❶在lab5.c源文件的65行,双击设置断点。
图5-21设置断点
❷点击Resume按钮继续执行程序到断点。
Asyoudostepover,youwillnoticethatthecountvariablevalueischanging.
❸点击memory图标,键入LEDs_8Bit外设的基址,点击evaluate查看从my_led基址开始的存储表。
可以在xparameters.h文件或在XPS的系统视图中查看基址。
❹点击Resume继续执行程序。
注意LEDs_8Bit外设的基址是增加的。
图5-22查看my_ledperipheral(0x7d800000)存储表
❺在调试页面右击sdk_lab图标,选择Terminate开始调试
图5-23结束调试进程
❿关闭SDK软件
结束语
本实验指导你怎样添加一个OPB定时器和中断控制器,通过软件设置平台分配一个中断句柄函数给中断设备。
你还可以编写中断句柄函数,并测试。
另外,还告诉我们了怎样通过SDK调试器查看参量表和存储器。
答案
1.Whatisthesizeofthecompiledprogram?
.textsegment:
57188
.datasegment:
1928
.bsssegment:
1120
Totalindecimal:
60236
Totalinhexadecimal:
eb4c
2.Whydoyouthinktheprogramissobig?
Theprintffunctionusessignificantamountofcodespace.
3.Whatisthesizeofthecompiledprogram?
.textsegment:
4224
.datasegment:
825
.bsssegment:
683
Totalindecimal:
5732
Totalinhexadecimal:
1664
完整的MHS文件
###############################################################################
#CreatedbyBaseSystemBuilderWizardforXilinxEDK8.2BuildEDK_Im.14
#TueAug2914:
15:
282006
#TargetBoard:
XilinxXUPVirtex-IIProDevelopmentSystemRevC
#Family:
virtex2p
#Device:
xc2vp30
#Package:
ff896
#SpeedGrade:
-7
#Processor:
PPC405
#Processorclockfrequency:
300.000000MHz
#Busclockfrequency:
100.000000MHz
#Debuginterface:
FPGAJTAG
#OnChipMemory:
64KB
###############################################################################
PARAMETERVERSION=2.1.0
PORTfpga_0_RS232_Uart_1_RX_pin=fpga_0_RS232_Uart_1_RX,DIR=I
PORTfpga_0_RS232_Uart_1_TX_pin=fpga_0_RS232_Uart_1_TX,DIR=O
PORTsys_clk_pin=dcm_clk_s,DIR=I,SIGIS=CLK,CLK_FREQ=100000000
PORTsys_rst_pin=sys_rst_s,DIR=I,RST_POLARITY=0,SIGIS=RST
PORTdip=DIP,DIR=I,VEC=[0:
3]
PORTpush=PUSH,DIR=I,VEC=[0:
4]
PORTled=fpga_0_LEDs_4Bit_GPIO_d_out,DIR=O,VEC=[0:
3]
BEGINppc405
PARAMETERINSTANCE=ppc405_0
PARAMETERHW_VER=2.00.c
BUS_INTERFACEJTAGPPC=jtagppc_0_0
BUS_INTERFACEIPLB=plb
BUS_INTERFACEDPLB=plb
PORTPLBCLK=sys_clk_s
PORTC405RSTCHIPRESETREQ=C405RSTCHIPRESETREQ
PORTC405RSTCORERESETREQ=C405RSTCORERESETREQ
PORTC405RSTSYSRESETREQ=C405RSTSYSRESETREQ
PORTRSTC405RESETCHIP=RSTC405RESETCHIP
PORTRSTC405RESETCORE=RSTC405RESETCORE
PORTRSTC405RESETSYS=RSTC405RESETSYS
PORTCPMC405CLOCK=proc_clk_s
PORTEICC405EXTINPUTIRQ=interrupt
END
BEGINppc405
PARAMETERINSTANCE=ppc405_1
PARAMETERHW_VER=2.00.c
BUS_INTERFACEJTAGPPC=jtagppc_0_1
END
BEGINjtagppc_cntlr
PARAMETERINSTANCE=jtagppc_0
PARAMETERHW_VER=2.00.a
BUS_INTERFACEJTAGPPC0=jtagppc_0_0
BUS_INTERFACEJTAGPPC1=jtagppc_0_1
END
BEGINproc_sys_reset
PARAMETERINSTANCE=reset_block
PARAMETERHW_VER=1.00.a
PARAMETERC_EXT_RESET_HIGH=0
PORTExt_Reset_In=sys_rst_s
PORTSlowest_sync_clk=sys_clk_s
PORTChip_Reset_Req=C405RSTCHIPRESETREQ
PORTCore_Reset_Req=C405RSTCORERESETREQ
PORTSystem_Reset_Req=C405RSTSYSRESETREQ
PORTRstc405resetchip=RSTC405RESETCHIP
PORTRstc405resetcore=RSTC405RESETCORE
PORTRstc405resetsys=RSTC405RESETSYS
PORTBus_Struct_Reset=sys_bus_reset
PORTDcm_locked=dcm_0_lock
END
BEGINplb_v34
PARAMETERINSTANCE=plb
PARAMETERHW_VER=1.02.a
PARAMETERC_DCR_INTFCE=0
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_bus_reset
PORTPLB_Clk=sys_clk_s
END
BEGINopb_v20
PARAMETERINSTANCE=opb
PARAMETERHW_VER=1.10.c
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_bus_reset
PORTOPB_Clk=sys_clk_s
END
BEGINplb2opb_bridge
PARAMETERINSTANCE=plb2opb
PARAMETERHW_VER=1.01.a
PARAMETERC_DCR_INTFCE=0
PARAMETERC_RNG0_BASEADDR=0x40000000
PARAMETERC_RNG0_HIGHADDR=0x7fffffff
PARAMETERC_NUM_ADDR_RNG=1
BUS_INTERFACESPLB=plb
BUS_INTERFACEMOPB=opb
END
BEGINopb_uartlite
PARAMETERINSTANCE=RS232_Uart_1
PARAMETERHW_VER=1.00.b
PARAMETERC_BAUDRATE=115200
PARAMETERC_DATA_BITS=8
PARAMETERC_ODD_PARITY=0
PARAMETERC_USE_PARITY=0
PARAMETERC_CLK_FREQ=100000000
PARAMETERC_BASEADDR=0x40600000
PARAMETERC_HIGHADDR=0x4060ffff
BUS_INTERFACESOPB=opb
PORTRX=fpga_0_RS232_Uart_1_RX
PORTTX=fpga_0_RS232_Uart_1_TX
END
BEGINplb_bram_if_cntlr
PARAMETERINSTANCE=plb_bram_if_cntlr_1
PARAMETERHW_VER=1.00.b
PARAMETERc_plb_clk_period_ps=10000
PARAMETERc_baseaddr=0xffff0000
PARAMETERc_highaddr=0xffffffff
BUS_INTERFACESPLB=plb
BUS_INTERFACEPORTA=plb_bram_if_cntlr_1_PORTA
END
BEGINbram_block
PARAMETERINSTANCE=plb_bram_if_cntlr_1_bram
PARAMETERHW_VER=1.00.a
BUS_INTERFACEPORTA=plb_bram_if_cntlr_1_PORTA
END
BEGINdcm_module
PARAMETERINSTANCE=dcm_0
PARAMETERHW_VER=1.00.a
PARAMETERC_CLK0_BUF=TRUE
PARAMETERC_CLKFX_BUF=TRUE
PARAMETERC_CLKFX_DIVIDE=1
PARAMETERC_CLKFX_MULTIPLY=3
PARAMETERC_CLKIN_PERIOD=10.000000
PARAMETERC_CLK_FEEDBACK=1X
PARAMETERC_DFS_FREQUENCY_MODE=HIGH
PARAMETERC_DLL_FREQUENCY_MODE=LOW
PARAMETERC_EXT_RESET_HIGH=1
PORTCLKIN=dcm_clk_s
PORTCLK0=sys_clk_s
PORTCLKFX=proc_clk_s
PORTCLKFB=sys_clk_s
PORTRST=net_gnd
PORTLOCKED=dcm_0_lock
END
BEGINplb_bram_if_cntlr
PARAMETERINSTANCE=plb_bram_if_cntlr_2
PARAMETERHW_VER=1.00.b
PARAMETERc_baseaddr=0x00000000
PARAMETERc_highaddr=0x00003fff
BUS_INTERFACESPLB=plb
BUS_INTERFACEPORTA=plb_bram_if_cntlr_2_PORTA
END
BEGINbram_block
PARAMETERINSTANCE=plb_bram_if_cntlr_2_bram
PARAMETERHW_VER=1.00.a
BUS_INTERFACEPORTA=plb_bram_if_cntlr_2_PORTA
END
BEGINopb_gpio
PARAMETERINSTANCE=dip1
PARAMETERHW_VER=3.01.b
PARAMETERC_GPIO_WIDTH=4
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=1
PARAMETERC_BASEADDR=0x40020000
PARAMETERC_HIGHADDR=0x400201FF
BUS_INTERFACESOPB=opb
PORTGPIO_in=DIP
END
BEGINopb_gpio
PARAMETERINSTANCE=push1
PARAMETERHW_VER=3.01.b
PARAMETERC_GPIO_WIDTH=5
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=1
PARAMETERC_BASEADDR=0x40000000
PARAMETERC_HIGHADDR=0x400001FF
BUS_INTERFACESOPB=opb
PORTGPIO_in=PUSH
END
BEGINmy_led
PARAMETERINSTANCE=my_led_0
PARAMETERHW_VER=1.00.a
PARAMETERC_BASEADDR=0x7d800000
PARAMETERC_HIGHADDR=0x7d8001ff
BUS_INTERFACESOPB=opb
PORTLED=fpga_0_LEDs_4Bit_GPIO_d_out
END
BEGINopb_timer
PARAMETERINSTANCE=delay
PARAMETERHW_VER=1.00.b
PARAMETERC_BASEADDR=0x41C00000
PARAMETERC_HIGHADDR=0x41C001FF
PARAMETERC_ONE_TIMER_ONLY=1
BUS_INTERFACESOPB=opb
PORTInterrupt=timer1
PORTCaptureTrig0=net_gnd
END
BEGINopb_intc
PARAMETERINSTANCE=opb_intc_0
PARAMETERHW_VER=1.00.c
PARAMETERC_BASEADDR=0x41200000
PARAMETERC_HIGHADDR=0x412001FF
BUS_INTERFACESOPB=opb
PORTIntr=timer1
PORTIrq=interrupt
END