[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] debugging problems, resent from gmail
An easy one! Did just that two weeks ago :-)
Yes, the Petalogix site is not exactly accurate, if you run
microblaze-uclinux-gdb it will open the GDB command shell. To open the
window, you have to call it with -w, or just call
microblaze-uclinux-gdb --help and take a look at the command line parameters.
To make it connect to your board, you have to specify the target as
(gdb) target remote <ip goes here><port>
The port is the same when you called gdbserver with
$gdbserver host:<port> <application>
To make gdb connect automatically to your board every time it's called,
configure it as is explained at the Petalogix website. Or you can have
a .gdbinit file on the directory you're calling microblaze-uclinux-gdb with
these contents:
target remote <ip goes here>:<port>
Having this file is the only easy way to make eclipse connect to my board on
startup, the other is to ask fot the gdb console and type it manually. Of
course if you're using this file, if you want to reconnect you have to exit
gdb and start it again.
Other than that, I found out that the vendors/config/microblaze/config.arch is
wrong when it configures gcc optmization flags for -O1 when CONFIG_USER_DEBUG
is defined. Gdb goes crazy when I try to debug something compiled that way,
this is the way I changed the flags so gdb works:
[lsantos@localhost microblaze]$ diff -uir config.arch~ config.arch
--- config.arch~ 2006-08-03 21:29:06.000000000 -0300
+++ config.arch 2007-04-23 16:22:09.000000000 -0300
@@ -228,7 +228,7 @@
LIBC = -Wl,-R,$(ROOTDIR)/lib/libc.gdb $(SLIBC)
endif
ifdef CONFIG_USER_DEBUG
- CFLAGS := $(if $(UOPT),$(UOPT),-O1) -g
+ CFLAGS := $(if $(UOPT),$(UOPT),-O0) -g
else
CFLAGS := $(if $(UOPT),$(UOPT),-Os) -g -fomit-frame-pointer
endif
With -O0 and -g everything works fine.
Hope this helped! Cheers!
On Monday 30 April 2007 19:41, Westover Scientific wrote:
> When I run the microblaze-uclinux-gdb command it doesn't bring the
> "debugger window" instead it remains at a command prompt. I am trying to
> follow the instructions in "Debugging User Applications in PetaLinux".
>
> I did try running microblaze-uclinux-insight directly and I get a message
> that it could not establish a connection to a remote target.
>
> Suggestions?
>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>;;;;;;;;;;;;;;;;;;;;;;; ; first terminal window
>
> PetaLinux environment set to '/home/rystrom/petalinux'
> [rystrom@localhost ~]$ cd petalinux/software/user-apps
> [rystrom@localhost user-apps]$ ls
> hello1 README testapp
> [rystrom@localhost user-apps]$ cd hello1
> [rystrom@localhost hello1]$ ls
> hello1 hello1.cpp hello1.gdb hello1.o Makefile README
> [rystrom@localhost hello1]$ alias download
> alias download='MyCwd=`pwd`; cd
> /home/rystrom/petalinux/hardware/user-platforms/ml402uc; make -f
> system.makedownload; cd $MyCwd; MyCwd='
> [rystrom@localhost hello1]$ download
>
> *********************************************
> Downloading Bitstream onto the target board
> *********************************************
> impact -batch etc/download.cmd
> Release 8.2.03i - iMPACT I.34
> Copyright (c) 1995-2006 Xilinx, Inc. All rights reserved.
> // *** BATCH CMD : setMode -bs
> // *** BATCH CMD : setCable -port auto
> AutoDetecting cable. Please wait.
> Reusing 78008001 key.
> Reusing FC008001 key.
> Connecting to cable (Parallel Port - parport0).
> WinDriver v8.02 Jungo (c) 1997 - 2006 Build Date: Jun 6 2006 X86 32bit
> 16:11:59.
> parport0: baseAddress=0x378, ecpAddress=0x778
> LPT base address = 0378h.
> ECP base address = 0778h.
> Cable connection failed.
> Reusing 79008001 key.
> Reusing FD008001 key.
> Connecting to cable (Parallel Port - parport1).
> WinDriver v8.02 Jungo (c) 1997 - 2006 Build Date: Jun 6 2006 X86 32bit
> 16:11:59.
> Cable connection failed.
> Reusing 7A008001 key.
> Reusing FE008001 key.
> Connecting to cable (Parallel Port - parport2).
> WinDriver v8.02 Jungo (c) 1997 - 2006 Build Date: Jun 6 2006 X86 32bit
> 16:11:59.
> Cable connection failed.
> Reusing 7B008001 key.
> Reusing FF008001 key.
> Connecting to cable (Parallel Port - parport3).
> WinDriver v8.02 Jungo (c) 1997 - 2006 Build Date: Jun 6 2006 X86 32bit
> 16:11:59.
> Cable connection failed.
> Reusing A0008001 key.
> Reusing 24008001 key.
> Connecting to cable (Usb Port - USB21).
> Checking cable driver.
> File version of /opt/pkg/xilinx/ise8.2/bin/lin/xusbdfwu.hex = 1021(dec),
> 03FD.
> File version of /etc/hotplug/usb/xusbdfwu.fw/xusbdfwu.hex = 1025(dec),
> 0401. Calling setinterface num=0, alternate=0.
> DeviceAttach: received and accepted attach for:
> vendor id 0x3fd, product id 0x8, device handle 0x9e3c4a0
> Cable PID = 0008.
> Max current requested during enumeration is 280 mA.
> Cable Type = 3, Revision = 0.
> Setting cable speed to 6 MHz.
> Cable connection established.
> Firmware version = 1025.
> CPLD file version = 0012h.
> CPLD version = 0012h.
> // *** BATCH CMD : identify
> Identifying chain contents ....Version is 0101
> '1': : Manufacturer's ID =Xilinx xc95144xl, Version : 5
> PMSPEC -- Overriding Xilinx file
> </opt/pkg/xilinx/ise8.2/xc9500/data/xc9500.acd>with local file
> </opt/pkg/xilinx/ise8.2/xc9500/data/xc9500.acd>
> INFO:iMPACT:1777 -
> Reading /opt/pkg/xilinx/ise8.2/xc9500xl/data/xc95144xl.bsd...
> INFO:iMPACT:501 - '1': Added Device xc95144xl successfully.
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> Version is 0010
> '2': : Manufacturer's ID =Xilinx xc4vsx35, Version : 2
> INFO:iMPACT:1777 -
> Reading /opt/pkg/xilinx/ise8.2/virtex4/data/xc4vsx35.bsd...
> INFO:iMPACT:501 - '1': Added Device xc4vsx35 successfully.
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> Version is 1111
> '3': : Manufacturer's ID =Xilinx xcf32p, Version : 15
> INFO:iMPACT:1777 -
> Reading /opt/pkg/xilinx/ise8.2/xcfp/data/xcf32p.bsd...
> INFO:iMPACT:501 - '1': Added Device xcf32p successfully.
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> Version is 0000
> '4': : Manufacturer's ID =Xilinx xccace, Version : 0
> INFO:iMPACT:1777 -
> Reading /opt/pkg/xilinx/ise8.2/acecf/data/xccace.bsd...
> INFO:iMPACT:501 - '1': Added Device xccace successfully.
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> done.
> Chain TCK freq = 10000000.
> '2': Putting device in ISP mode...done.
> Chain TCK freq = 10000000.
> Validating chain...
> Boundary-scan chain validated successfully.
> Elapsed time = 0 sec.
> // *** BATCH CMD : identifyMPM
> Elapsed time = 0 sec.
> // *** BATCH CMD : assignFile -p 3 -file "implementation/download.bit"
> '3': Loading file 'implementation/download.bit' ...
> done.
> INFO:iMPACT:501 - '3': Added Device xc4vsx35 successfully.
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> // *** BATCH CMD : program -p 3
> Chain TCK freq = 10000000.
> Chain TCK freq = 10000000.
> Validating chain...
> Boundary-scan chain validated successfully.
> '3':Programming device...
> done.
> '3': Reading status register contents...
> CRC error : 0
> Decryptor security set : 0
> DCM locked : 1
> DCI matched : 1
> End of startup signal from Startup block : 1
> status of GTS_CFG_B : 1
> status of GWE : 1
> status of GHIGH : 1
> value of MODE pin M0 : 0
> value of MODE pin M1 : 0
> Value of MODE pin M2 : 0
> Internal signal indicates when housecleaning is completed: 1
> Value driver in from INIT pad : 1
> Internal signal indicates that chip is configured : 1
> Value of DONE pin : 1
> Indicates when ID value written does not match chip ID: 0
> Decryptor error Signal : 0
> System Monitor Over-Temperature Alarm : 0
> INFO:iMPACT:2219 - Status register values:
> INFO:iMPACT - 0011 1111 0001 1110 0000 0000 0000 0000
> INFO:iMPACT:579 - '3': Completed downloading bit file to device.
> INFO:iMPACT:580 - '3':Checking done pin ....done.
> '3': Programmed successfully.
> Elapsed time = 4 sec.
> // *** BATCH CMD : quit
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> [rystrom@localhost hello1]$ pwd
> /home/rystrom/petalinux/software/user-apps/hello1
> [rystrom@localhost hello1]$ ls
> hello1 hello1.cpp hello1.gdb hello1.o Makefile README
> [rystrom@localhost hello1]$ microblaze-uclinux-gdb hello1.gdb
> GNU gdb 5.3Xilinx EDK 8.1.01 Build EDK_I.19.4
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "--host=i686-pc-linux-gnu
> --target=microblaze-uclinux"...
> (gdb) break main
> Breakpoint 1 at 0xec: file hello1.cpp, line 4.
> (gdb) next
> The program is not being run.
>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; second terminal window
>
> PetaLinux environment set to '/home/rystrom/petalinux'
> [rystrom@localhost ~]$ kermit -c
> Connecting to /dev/ttyS0, speed 115200
> Escape character: Ctrl-\ (ASCII 28, FS): enabled
> Type the escape character followed by C to get back,
> or followed by ? to see other options.
> ----------------------------------------------------
>
> =================================================
> FS-BOOT First Stage Bootloader (c) 2006 PetaLogix
> =================================================
> FS-BOOT: System initialisation completed.
> FS-BOOT: Booting from FLASH. Press 's' for image download.
> FS-BOOT: Booting image...
> SDRAM :
> Enabling caches...Icache:OK...Dcache:OK
> U-Boot Start:0x27fc0000
> Malloc Start:0x27f60000
> Board Info Start:0x27f5ffd0
> Boot Parameters Start:0x27f4ffd0
> FLASH: 8 MB
> ETHERNET: MAC:00:0a:35:00:22:01
>
> Hit any key to stop autoboot: 0
> ## Booting image at 220c0000 ...
> Image Name: PetaLinux Kernel 2.4
> Image Type: Microblaze Linux Kernel Image (uncompressed)
> Data Size: 2154496 Bytes = 2.1 MB
> Load Address: 24000000
> Entry Point: 24000000
> Verifying Checksum ... OK
> OK
> Linux version 2.4.32-uc0 (rystrom@localhost) (gcc version 3.4.1 ( Xilinx
> EDK 8.1.01 Build EDK_I.19.4 080506 )) #20 Fri Apr 27 13:59:57 PDT 2007 On
> node 0 totalpages: 16384
> zone(0): 16384 pages.
> zone(1): 0 pages.
> zone(2): 0 pages.
> CPU: MICROBLAZE
> Kernel command line:
> mtdparts=physmap_auto:256K(boot),256K(bootenv),256K(config),4M(image),3M(sp
>are) macaddr=00:0a:35:00:22:01
> Console: xmbserial on UARTLite
> Calibrating delay loop... 49.76 BogoMIPS
> Memory: 64MB = 64MB total
> Memory: 62556KB available (1105K code, 1158K data, 48K init)
> Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
> Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
> Mount cache hash table entries: 512 (order: 0, 4096 bytes)
> Buffer cache hash table entries: 4096 (order: 2, 16384 bytes)
> Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
> POSIX conformance testing by UNIFIX
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Microblaze UARTlite serial driver version 1.00
> ttyS0 at 0x40600000 (irq = 2) is a Microblaze UARTlite
> ttyS1 at 0x41400000 (irq = 3) is a Microblaze UARTlite
> Starting kswapd
> RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
> eth0: using fifo mode.
> eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=1
> eth0: id 0.0a; block id 0, type 0
> physmap_auto flash device: 800000 at 22000000
> physmap_auto probing buswidth 4
> cfi_cmdset_0001: Erase suspend on write enabled
> 0: offset=0x0,size=0x40000,blocks=32
> Using buffer write method
> physmap_auto: no partition info available, registering whole flash at once
> uclinux[mtd]: RAM probe address=0x24155288 size=0xe1000
> uclinux[mtd]: root filesystem index=2
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 512 buckets, 4Kbytes
> TCP: Hash tables configured (established 4096 bind 8192)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> VFS: Mounted root (cramfs filesystem) readonly.
> Freeing init memory: 48K
> Mounting proc:
> Mounting var:
> Populating /var:
> Running local start scripts.
> Mounting /etc/config:
> Populating /etc/config:
> flatfsd: Nonexistent or bad flatfs (-48), creating new one...
> flatfsd: Failed to write flatfs (-48): No such device
> flatfsd: Created 5 configuration files (423 bytes)
> Setting hostname:
> Setting up interface lo:
> Setting up interface eth0:
> eth0: Promiscuous mode disabled.
> Starting portmap:
> Starting thttpd:
>
> uclinux login: root
> Password:
> # mkdir /var/tmp/software
> # mount -t nfs
> 192.168.1.10:/home/rystrom/petalinux/software/var/tmp/software -o tcp
> # cd /var/tmp/software/user-apps/hello1
> # ls
> Makefile README hello1 hello1.cpp hello1.gdb hello1.o
> # ./hello1
> Hello to the uClinux World
> # cat hello1.cpp
> #include <iostream>
>
> int main(int argc, char *argv[])
> {
> std::cout << "Hello to the uClinux World" << std::endl;
> return 0;
> }
>
>
> # gdbserver host:1234 hello1
> Process hello1 created; pid = 53
> Listening on port 1234
> Remote debugging from host 192.168.1.10
> Hello to the uClinux World
> Killing inferior
> # gdbserver host:1234 hello1
> Process hello1 created; pid = 55
> Listening on port 1234
--
This is Linux country.
On a quiet night, you can hear Windows reboot.
Leonardo Pereira Santos |_|0|_|
Engenheiro de Projetos |_|_|0|
PD3 Tecnologia |0|0|0|
av. Para 330/202
(51) 3337 1237
Today Fortune tells us:
There is always one thing to remember: writers are always selling somebody
out.
-- Joan Didion, "Slouching Towards Bethlehem"
___________________________
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/