[U-Boot-Users] simple_strtoul overwrites bd_info field
Wolfgang Denk
wd at denx.de
Wed Aug 30 10:14:13 CEST 2006
In message <44F54522.4010608 at 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 at denx.de
C++ is the best example of second-system effect since OS/360.
More information about the U-Boot
mailing list