1、MICROBLAZE的调试方法MICROBLAZE的调试方法介绍MICROBLAZE是XILINX提供的采用大端存储系统、指令和数据采用哈佛结构的32位软核,可在SPARTAN2,3和VIRTEX系统上运行,现对其调试方法做一个简单介绍,希望对有兴趣这方面开发的人有所帮助。 XILINX提供的调试环境主要有GDB和SDK。即在XPS环境下可通过调用GDB完成,也可将程序导入SDK环境下进行调试。这两种方法都是通过XMD作为底层工具与目标进行通讯。本文以XPS环境下的GDB调试为例。调试的方法主要由4种:MDM,XMD-stub,ISS和Virtual Platform。其中后两为仿真调试,不需
2、要目标硬件支持,对于没有目标板的而又想预先程序开发的用户是个不错的选择。下面对这4种方法逐一做一简要介绍。 1 MDM(Microprocessor Debug Module)这种方式是基于硬件的调试方法。主机通过JTAG与FPGA中的MDM core相连,而MDM又与Microblaze的调试端口连接起来,从而完成调试信息的通讯。一个MDM模块可以与一个和多个MicroBlaze处理器核相连,如下图1。图1 MDM连接 首先要加入opb_mdm模块并完成与microblaze调试接口的连接,并设置好相应的参数,如图2所示。如果是通过BSB创建的项目,选择Use On-chip Debug L
3、ogic作为调试方式即可完成opb_mdm模块的加入。图2 MDM相关设置相应的MHS文件为:BEGIN microblazePARAMETER INSTANCE = microblaze_0PARAMETER HW_VER = 4.00.aPARAMETER C_DEBUG_ENABLED = 1PARAMETER C_NUMBER_OF_PC_BRK = 2PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1BUS_INTERFACE DLMB = dlmbBUS_INTERFACE ILMB
4、= ilmbBUS_INTERFACE DOPB = mb_opbBUS_INTERFACE IOPB = mb_opbPORT CLK = sys_clk_sPORT DBG_CAPTURE = DBG_CAPTURE_sPORT DBG_CLK = DBG_CLK_sPORT DBG_REG_EN = DBG_REG_EN_sPORT DBG_TDI = DBG_TDI_sPORT DBG_TDO = DBG_TDO_sPORT DBG_UPDATE = DBG_UPDATE_sENDBEGIN opb_mdmPARAMETER INSTANCE = debug_modulePARAMET
5、ER HW_VER = 2.00.aPARAMETER C_MB_DBG_PORTS = 1PARAMETER C_USE_UART = 1PARAMETER C_UART_WIDTH = 8PORT DBG_CAPTURE_0 = DBG_CAPTURE_sPORT DBG_CLK_0 = DBG_CLK_sPORT DBG_REG_EN_0 = DBG_REG_EN_sPORT DBG_TDI_0 = DBG_TDI_sPORT DBG_TDO_0 = DBG_TDO_sPORT DBG_UPDATE_0 = DBG_UPDATE_sEND 其中PARAMETER C_USE_UART =
6、 1是使能MDM中的UART功能,可通过它模拟UART从JTAG口传送数据。 在启动XMD与目标板连接之前,应用相应的设置如图3所示,选择HARDWARE,即选用MDM的调试方法。图3 如一切正常的话,则XMD窗口显示的信息如图4所示。图4 MDM信息显示此时便可启动GNB进行软件调试了。2 XMDSTUB 这是一种基于软件的调试方法。XMDSTUB是一段从0x0开始的监控程序(ROM MONITOR),它可通过JTAGUART(在OPBMDM中使能的UART,当然也可单独加入一JTAGUART IP核)或UART口与XMD完成数据通讯,因此在MSS文件中必须有一个OPBMDM或UARTLIT
7、E设计为XMDSTUB PERIPHERAL。相应的MSS文件如下所示:BEGIN microblazePARAMETER INSTANCE = microblaze_0PARAMETER HW_VER = 3.00.aPARAMETER C_DEBUG_ENABLED = 0BUS_INTERFACE DOPB = mb_opbBUS_INTERFACE IOPB = mb_opbBUS_INTERFACE DLMB = dlmbBUS_INTERFACE ILMB = ilmbPORT CLK = sys_clk_sENDBEGIN opb_mdmPARAMETER INSTANCE =
8、debug_modulePARAMETER HW_VER = 2.00.aPARAMETER C_MB_DBG_PORTS = 0PARAMETER C_USE_UART = 1PARAMETER C_UART_WIDTH = 8图5 在Applications中完成如图6所示的设置,保证在编译时将XMDSTUB程序从0x0处开始放置。 另在XMD设置中,即图3中,应选择stub选项。在advanced options中,默认的是JTAG方式的连接,即采用JTAGUART方式,用JTAG口模拟UART功能。如要选用UART方式,可勾上advanced options,选择serial,并设置好
9、相应的串口参数,与IP CORE中选中的UARTLITE参数保持一致,保证正确连接,如图7所示。 另外,有一个有意思的事,不知是不是我机子的问题,就是当我将advanced options中选为SERIAL之后,就没法再改回JTAG了,SAVE时总是报错。一个解决的办法就是先将CONNECTION TYPE改为其它类型SAVE,然后再改回STUB,此时就不要再选advanced options了,因为默认的是JTAG方式。图6图7 上述设置完成后,便可DOWNLOAD程序,将XMDSTUB程序下载时FPGA中,然后打开XMD进行连接和启动GDB的SEVER,最后用GDB完成应用程序的下载和调试
10、。3 ISS(Instruction Set Simulator) 这是一种基于指令集仿真的调试方法,只能支持处理器和内存模型,对其它的周边硬件不支持。在图3中选用SIMULATOR,没有使用过这种方法,所以不多说。4 Virtual Platform systems 虚拟平台是硬件系统指令周期级的仿真模型。通过它可以在没有硬件的基础上,进行应用程序的调试和优化。如果没有硬件平台,这是一种很好的选择。 在XPS中,选择Tools Generate Virtual Platform创建虚拟平台。然后在图3的XMD中便可选择virtual platform选项。打开XMD,输入vpconnect命令,或前三个字母vpc,完成XMD与虚拟平台的连接,如图8所示。 最后便可运行GDB程序进行相应的调试工作了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1