This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

About h8000 eCos GDB-Stub


Hello,

I am still struggling to resolve why not breaking at cyg_start in Insight.
As I am further involved,the problem's aspect became more about eCos's h8000 GDB-Stub,
so let me change my Mailing list subject title from "How to set GDB Stub Options in order to run insight ?" to "About h8000 eCos GDB-Stub".


First I re-state my problem.
I am working on eCos 3.0 using Akizuki H8/3068 Network board.
That board's CPU is H8/3069F.
I succeeded to install FreeBSD stack and ran TCP/IP test programs.
But when I tried to use Insight or GDB,it does not stop at cyg_start breaking point.


I start up Insight like next line.
$ h8300-elf-insight.exe nc_test_slave.elf

--- GDB commands log on console window
(gdb) set remotebaud 57600
(gdb) set remotelogfile remote-5.log
(gdb) target remote /dev/com4
Remote debugging using /dev/com4
0x000073a4 in ?? ()

(gdb) load
Loading section .text, size 0x5d58a lma 0x410000
Loading section .rodata, size 0x431e lma 0x46d58a
Loading section .data, size 0x16f8 lma 0x4718a8
Start address 0x410000, load size 405408
Transfer rate: 3 KB/sec, 63 bytes/write.

(gdb) b cyg_start
Note: breakpoints 1 (disabled), 2 (disabled), 3 (disabled) and 4 also set at pc 0x411dda.
Breakpoint 5 at 0x411dda: file nc_test_slave.c, line 729.


(gdb) c
Continuing.
Network stack using 69632 bytes for misc space
                   69632 bytes for mbufs
                   139264 bytes for mbuf clusters
[cyg_net_init] Init: mbinit(0x00000000)
[cyg_net_init] Init: cyg_net_init_devs(0x00000000)
Init device 'dp83902a_eth0'
DP83902A - eeprom ESA: 00:02:cb:01:42:b9
[cyg_net_init] Init: loopattach(0x00000000)
[cyg_net_init] Init: ifinit(0x00000000)
[cyg_net_init] Init: domaininit(0x00000000)
[cyg_net_init] Init: cyg_net_add_domain(0x004728a8)
New domain internet at 0x00000000
[cyg_net_init] Init: cyg_net_add_domain(0x00472298)
New domain route at 0x00000000
[cyg_net_init] Init: call_route_init(0x00000000)
[cyg_net_init] Done

At this point it should stop at break point(=cyg_start),but it never reply nothing.
---end GDB commands log on console window


I perused remote-5.log and learned GDB-Stub does not operate properly..
---excerpts of remote-5.log
c b cyg_start
c c
w $Z0,411dda,2#d3
r +$#00
w +$m411dda,2#8a
r +$1aa2#25
w +$X411dda,2:\x01\x80#30
r +$OK#9a
w +$vCont?#49
r +$#00
w +$Hc0#db
r +$OK#9a
w +$c#63
r +$O4E6574776F726B20737461636B207573696E6720363936333220627974657320666F72206D6973632073706163650A#0C
w +
-- omitted --
r $O5B6379675F6E65745F696E69745D20496E69743A2063616C6C5F726F7574655F696E69742830783030303030303030290A#5D
w +
r $O5B6379675F6E65745F696E69745D20446F6E650A#2D
w +
r +
w \x03 ; I entered Ctr C.
r <Timeout: -1 seconds>
---end of excerpts of remote-5.log


When GDB send $Z0, GDB-Stub should replace address's code with TRAP,but in case of h8000 GDB-Stub does nothing.
So GDB try to replace address's code by $X411dda,2:\x01\x80.
But \x01\x80 is never H8's undefined codes but Sleep Command,so CPU sleeps at top of cyg_start and never stops.


I studied \ecos-3.0\packages\hal\common\v3_0\src\generic-stub.c,and found __process_packet() function looked likely place.
It's 1494-1566 lines read,
#if defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) && (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0)
case 'Z':
is_Z = 1;
case 'z':
{
char *ptr = &packet[1];
target_register_t ztype, addr, length;


There was no CYGNUM_HAL_BREAKPOINT_LIST_SIZE option in h8000 cdl file.
I tentatively commented out defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) line and ran,but there was no change in GDB command's log.
Apparantly there are something missing.Would you please teach me the best way to insert $Z0 operation in h8000 GDB-Stub ?


Also,although I inserted diag_printf() in __process_packet function, nothing appeared on console window.
I do not know why diag_printf() did nothing,or am I looking wrong place at all ?
Please teach me how to trace codes in generic-stub.c. Are there any way to display on Insight console window ?


Thank you in advance.

m mariga


-- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]