
30 Aug
2006
30 Aug
'06
10:14 a.m.
In message 44F54522.4010608@dave-tech.it you wrote:
Check the assembler code (single step it under a debugger).
This is the offending instruction in simple_strtoul: *endp = (char *)cp;
As endp points to one field of the struct bd_info, it gets corrupted. So
Umm.. it should not. endp is the second art when calling simple_strtoul(), and "lib_arm/board.c" passes the address of a local variable here.
the problem is about the pointer "e" in function start_armboot that is passed to simple_strtoul. Any idea?
Did you check which address gets passed to simple_strtoul()? Did you check the generated assembler code as I suggested? [Try "display/i $pc" followed by single-stepping using "si".]
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
C++ is the best example of second-system effect since OS/360.