[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [microblaze-uclinux] Jtag Debug



Andy,
 
I've created a simple hardware version, only microblaze, uart and mch_opb_ddr included. The implemention time is great reduced to be about several minutes. There are also some change for the software.  The overall run time is as expected, winthin second... I am not sure if the result is correct. Hope this will help...
 
If you'd like the design, send me email offline.
 
Thanks
-Kevin
 
Detail:
 
Hardware:
    mch_opb_ddr (32 bit DDR, 64MB total)
    opb_uart (115200 8-N-1 )
    microblaze (FPU, hard_multiplier enabled)
    BRAM (64KB)
 
Software:
    - remove math.h file
    - change all double to float, remove timer/interrupt codes, add cache enable in transceiver.c
    - copy $EDK_INSTALL\gnu\microblaze\nt\microblaze\lib\libm_m_fps.a to your project microblaze_0\lib and rename to libm.a.  this will ensure single precision library is used.
    - Software are compiled at DDR
 
Execution:
    - EDK 7.1.2, ISE 7.1.3
    - Download hardware
    - Launch XMD
    - command:  dow fft/executable.elf
    - command: run
 
 
 
 
 
 

-----Original Message-----
From: owner-microblaze-uclinux@xxxxxxxxxxxxxx [mailto:owner-microblaze-uclinux@xxxxxxxxxxxxxx] On Behalf Of Abot Botbot
Sent: Friday, October 28, 2005 9:45 PM
To: microblaze-uclinux@xxxxxxxxxxxxxx
Subject: Re: [microblaze-uclinux] Jtag Debug
 
Hey all,
 
   Kevin asked for the project file, so here it is.. Hope you got a few hours to compile it :*(
 
Thanks,
Andy
 

>From: John Williams <jwilliams@xxxxxxxxxxxxxx>
>Reply-To: microblaze-uclinux@xxxxxxxxxxxxxx
>To: microblaze-uclinux@xxxxxxxxxxxxxx
>Subject: Re: [microblaze-uclinux] Jtag Debug
>Date: Fri, 28 Oct 2005 08:42:30 +1000
>
>Hi Andy,
>
>A couple of comments/observations about your system, that may be relevant.
>
>From your MHS file:
>
>BEGIN mch_opb_ddr
>  PARAMETER INSTANCE = DDR_SDRAM_64Mx32
>  PARAMETER HW_VER = 1.00.a
>
>
>[snip]
>
>  PARAMETER C_DDR_AWIDTH = 13
>
>You have no PARAMETER C_DDR_DWIDTH set - by default it is 16 (look at
>MPD file), but the name of your peripheral suggests that you have
>32-bit wide DDR.
>
>
>  [snip]
>
>  BUS_INTERFACE SOPB = mb_opb
>  BUS_INTERFACE MCH0 = ixcl
>  BUS_INTERFACE MCH1 = dxcl
>
>I am surprised your system works at all - there is a bug in the
>opb_mch_ddr controller - I reported the bug to Xilinx a while ago, and
>understand that a patch shhould be released soon.
>
>In the systems where I saw the bug (66 MHz w/ 16 bit wide DDR) the XCL
>interface would lock up the CPU - but maybe in your system it's
>manifesting itself as very slow instruction fetch?
>
>I can say with some certainty that the debug/MDM controller is not the
>cause of your performance woes.
>
>Try the OPB_DDR controller instead (with caches of course), see if that
>has any impact.  In principle, the MCH controllers are much faster, but
>until the bug in the mch_opb_ddr is fixed, you probably shouldn't try
>to use it.
>
>Cheers,
>
>John
>
>
>
>Abot Botbot wrote:
> > Hey Friends,
> >
> >   This might be considered off topic, but I think I'm missing a
> > fundamantal explanation for the performance that I get. Here's my
> > basic design flow, which doesn't use uCLinux yet, I was just trying
> > to verify that the DSP functionality I want is possible on the
> > microblaze... I download the XMD stub to the board, then run "dow
> > executable.elf" from XMD and type "run"... This sets my code in
> > motion, but it seems to be going extremely slow. It's running
> > entirely out of SRAM, but that shouldn't be the only factor in the
> > performance I'm seeing... I'm wondering if my whole system is
> > running over the JTAG clock and putting out debug symbols to the PC,
> > even though I'm not observing them, and I took the -g option out of
> > the compiler flags.. So two questions... Am I running in some debug
> > mode where it is running much slower than it could be... How do I
> > get the hardware to run independantly, if it is in some debug mode..
> > After I finish a few things for my graduate classes (mid terms,
> > blech!) I will get back on the uCLinux train and get that running on
> > my ML401 board. Thanks for any help you can give! I'll attatch some
> > files in case anyone thinks looking at them will help them to
>understand.
> >
> > Thanks,
> > Andy
> >
> > _________________________________________________________________
> > Express yourself instantly with MSN Messenger! Download today - it's
> > FREE!
> > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
> >
> > /*******************************************************************
> > *
> > * CAUTION: This file is automatically generated by libgen.
> > * Version: Xilinx EDK 7.1.2 EDK_H.12.5.1
> > * DO NOT EDIT.
> > *
> > * Copyright (c) 2005 Xilinx, Inc.  All rights reserved.
> > *
> > * Description: Driver parameters
> > *
> > *******************************************************************/
> >
> > #define STDIN_BASEADDRESS 0x40600000 #define STDOUT_BASEADDRESS
> > 0x40600000
> >
> > /******************************************************************/
> >
> > #define XPAR_DLMB_CNTLR_BASEADDR 0x00000000 #define
> > XPAR_DLMB_CNTLR_HIGHADDR 0x00001FFF #define XPAR_ILMB_CNTLR_BASEADDR
> > 0x00000000 #define XPAR_ILMB_CNTLR_HIGHADDR 0x00001FFF
> >
> > /******************************************************************/
> >
> > #define XPAR_XUARTLITE_NUM_INSTANCES 2 #define
> > XPAR_DEBUG_MODULE_BASEADDR 0x41400000 #define
> > XPAR_DEBUG_MODULE_HIGHADDR 0x4140FFFF #define
> > XPAR_DEBUG_MODULE_DEVICE_ID 0 #define XPAR_DEBUG_MODULE_BAUDRATE 0
> > #define XPAR_DEBUG_MODULE_USE_PARITY 0 #define
> > XPAR_DEBUG_MODULE_ODD_PARITY 0 #define XPAR_DEBUG_MODULE_DATA_BITS 0
> > #define XPAR_RS232_UART_BASEADDR 0x40600000 #define
> > XPAR_RS232_UART_HIGHADDR 0x4060FFFF #define
> > XPAR_RS232_UART_DEVICE_ID 1 #define XPAR_RS232_UART_BAUDRATE 9600
> > #define XPAR_RS232_UART_USE_PARITY 0 #define
> > XPAR_RS232_UART_ODD_PARITY 0 #define XPAR_RS232_UART_DATA_BITS 8
> >
> > /******************************************************************/
> >
> > #define XPAR_XGPIO_NUM_INSTANCES 4
> > #define XPAR_LEDS_4BIT_BASEADDR 0x40040000 #define
> > XPAR_LEDS_4BIT_HIGHADDR 0x4004FFFF #define XPAR_LEDS_4BIT_DEVICE_ID
> > 0 #define XPAR_LEDS_4BIT_INTERRUPT_PRESENT 0 #define
> > XPAR_LEDS_4BIT_IS_DUAL 0 #define XPAR_LEDS_POSITIONS_BASEADDR
> > 0x40020000 #define XPAR_LEDS_POSITIONS_HIGHADDR 0x4002FFFF #define
> > XPAR_LEDS_POSITIONS_DEVICE_ID 1 #define
> > XPAR_LEDS_POSITIONS_INTERRUPT_PRESENT 0 #define
> > XPAR_LEDS_POSITIONS_IS_DUAL 0 #define
> > XPAR_PUSH_BUTTONS_POSITION_BASEADDR 0x40000000 #define
> > XPAR_PUSH_BUTTONS_POSITION_HIGHADDR 0x4000FFFF #define
> > XPAR_PUSH_BUTTONS_POSITION_DEVICE_ID 2 #define
> > XPAR_PUSH_BUTTONS_POSITION_INTERRUPT_PRESENT 0 #define
> > XPAR_PUSH_BUTTONS_POSITION_IS_DUAL 0 #define
> > XPAR_DIP_SWITCHES_8BIT_BASEADDR 0x40060000 #define
> > XPAR_DIP_SWITCHES_8BIT_HIGHADDR 0x4006FFFF #define
> > XPAR_DIP_SWITCHES_8BIT_DEVICE_ID 3 #define
> > XPAR_DIP_SWITCHES_8BIT_INTERRUPT_PRESENT 0 #define
> > XPAR_DIP_SWITCHES_8BIT_IS_DUAL 0
> >
> > /******************************************************************/
> >
> > #define XPAR_XIIC_NUM_INSTANCES 1
> > #define XPAR_IIC_EEPROM_BASEADDR 0x40800000 #define
> > XPAR_IIC_EEPROM_HIGHADDR 0x4080FFFF #define
> > XPAR_IIC_EEPROM_DEVICE_ID 0 #define XPAR_IIC_EEPROM_TEN_BIT_ADR 0
> > #define XPAR_IIC_EEPROM_GPO_WIDTH 1
> >
> > /******************************************************************/
> >
> > #define XPAR_XSYSACE_MEM_WIDTH 16
> > #define XPAR_XSYSACE_NUM_INSTANCES 1 #define
> > XPAR_SYSACE_COMPACTFLASH_BASEADDR 0x41800000 #define
> > XPAR_SYSACE_COMPACTFLASH_HIGHADDR 0x4180FFFF #define
> > XPAR_SYSACE_COMPACTFLASH_DEVICE_ID 0 #define
> > XPAR_SYSACE_COMPACTFLASH_MEM_WIDTH 16
> >
> > /******************************************************************/
> >
> > #define XPAR_DDR_SDRAM_64MX32_MEM0_BASEADDR 0x24000000 #define
> > XPAR_DDR_SDRAM_64MX32_MEM0_HIGHADDR 0x27FFFFFF
> >
> > /******************************************************************/
> >
> > #define XPAR_XEMAC_NUM_INSTANCES 1
> > #define XPAR_ETHERNET_MAC_BASEADDR 0x40C00000 #define
> > XPAR_ETHERNET_MAC_HIGHADDR 0x40C0FFFF #define
> > XPAR_ETHERNET_MAC_DEVICE_ID 0 #define
> > XPAR_ETHERNET_MAC_ERR_COUNT_EXIST 1 #define
> > XPAR_ETHERNET_MAC_DMA_PRESENT 1 #define XPAR_ETHERNET_MAC_MII_EXIST
> > 1 #define XPAR_ETHERNET_MAC_CAM_EXIST 0 #define
> > XPAR_ETHERNET_MAC_JUMBO_EXIST 0
> >
> > /******************************************************************/
> >
> > #define XPAR_SRAM_256KX32_NUM_BANKS_MEM 1
> >
> > /******************************************************************/
> >
> > #define XPAR_SRAM_256KX32_MEM0_BASEADDR 0x22000000 #define
> > XPAR_SRAM_256KX32_MEM0_HIGHADDR 0x220FFFFF
> >
> > /******************************************************************/
> >
> > #define XPAR_XTMRCTR_NUM_INSTANCES 1 #define
> > XPAR_OPB_TIMER_1_BASEADDR 0x41C00000 #define
> > XPAR_OPB_TIMER_1_HIGHADDR 0x41C0FFFF #define
> > XPAR_OPB_TIMER_1_DEVICE_ID 0
> >
> > /******************************************************************/
> >
> > #define XPAR_INTC_MAX_NUM_INTR_INPUTS 1 #define XPAR_XINTC_HAS_IPR 1
> > #define XPAR_XINTC_USE_DCR 0 #define XPAR_XINTC_NUM_INSTANCES 1
> > #define XPAR_OPB_INTC_0_BASEADDR 0x41200000 #define
> > XPAR_OPB_INTC_0_HIGHADDR 0x4120FFFF #define
> > XPAR_OPB_INTC_0_DEVICE_ID 0 #define XPAR_OPB_INTC_0_KIND_OF_INTR
> > 0x00000000
> >
> > /******************************************************************/
> >
> > #define XPAR_INTC_SINGLE_BASEADDR 0x41200000 #define
> > XPAR_INTC_SINGLE_HIGHADDR 0x4120FFFF #define
> > XPAR_INTC_SINGLE_DEVICE_ID XPAR_OPB_INTC_0_DEVICE_ID #define
> > XPAR_OPB_TIMER_1_INTERRUPT_MASK 0X000001 #define
> > XPAR_OPB_INTC_0_OPB_TIMER_1_INTERRUPT_INTR 0
> >
> > /******************************************************************/
> >
> > #define XPAR_CPU_CORE_CLOCK_FREQ_HZ 100000000
> >
> > /******************************************************************/
> >
>
>
>--
>Dr John Williams, Research Fellow,
>Embedded Systems Group / Reconfigurable Computing School of ITEE, The
>University of Queensland, Brisbane, Australia
>(p) +61 7 33652185  (f) +61 7 33654999 (m) +61 403969243
>___________________________ microblaze-uclinux mailing list
>microblaze-uclinux@xxxxxxxxxxxxxx
>Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>Mailing List Archive :
>http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>
 
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/