This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Question eCOS debugging. Thanks a lot.
- From: "QiangHuang" <jameshq at liverpool dot ac dot uk>
- To: "'Ecos-Discuss'" <ecos-discuss at sources dot redhat dot com>
- Date: Thu, 31 Jul 2003 18:13:28 +0100
- Subject: [ECOS] Question eCOS debugging. Thanks a lot.
Hi all:
I am trying to get a clear calling path of RedBoot with the hal stub
and GDB debugger. I can't understand the following, could anybody please
give me some idea? Thanks a lot.
In HAL/ARM function "hal_syscall_handler()" getting the saved ARM register
by calling:
Step 1. func = get_register(R0); arg1 = get_register(R1); arg2 =
get_register(R2); arg3 = get_register(R3);
Step 2. and later call into RedBoot by function "__do_syscall(func, arg1,
arg2, arg3, arg4, &err, &sig)",
Step 3. in turns call into gdb_fileio function: "cyg_hal_gdbfileio_xxx()",
take write for example: cyg_hal_gdbfileio_write((int)arg1, (const void
*)arg2, (size_t)arg3, (int *)sig);
Here arg2 will be treated as a buffer pointer, but Isn't "arg2" = "saved ARM
register R2"? so where is this pointer pointing to?
I would like to know how the processor registers are retrieved (by the HAL
Stub and RedBoot) and display on the GDB debugger(Insight)? Thanks a lot.
BTW: has anybody made a calling path between HAL stub, Redboot and GDB
debugger? if so could anybody please share it with me? (also the protocol
between GDB and Redboot, any docs avaliable?)
Thanks a lot
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss