This is the mail archive of the ecos-discuss@sources.redhat.com 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]

Re: redboot init entry


Gary Thomas wrote:

On Wed, 2005-03-30 at 19:55 +0400, Nickolay wrote:


Hallo Guys!

I discovered, that my IXDP425 is hanged in this section code:

#if defined(CYGPRI_REDBOOT_ZLIB_FLASH) && defined(CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER)
fis_zlib_common_buffer =
workspace_end -= CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE;
#endif


#ifdef CYGFUN_REDBOOT_BOOT_SCRIPT
   script_timeout = CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT;
#endif

for (init_entry = __RedBoot_INIT_TAB__; init_entry != &__RedBoot_INIT_TAB_END__; init_entry++) {
(*init_entry->fun)();
}



What does it mean?
What is the init_entry ?



It's a pointer (from a table) to initialization functions for the various pieces of RedBoot. Try changing the lines to be:

 for (init_entry = __RedBoot_INIT_TAB__; init_entry != &__RedBoot_INIT_TAB_END__;  init_entry++) {
     diag_printf("Calling init: %p\n", init_entry->fun);
     (*init_entry->fun)();
     diag_printf("... back from: %p\n", init_entry->fun);
 }

This should then print out a number of lines with addresses.
Then use 'nm' or 'gdb' to figure out which function was called
last and you can carry on from there.



Thanks!

Fix and now write to the flash via JTAG.
But when i find address of bad function, what gdb i can run on the x86 ?
Has anywhere precompiled cross GDB for debugging arm-xscale binaries on the x86 ?




--
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]