
Hi,
I still need to investigate this further, but figured that a post might encourage some suggestions about this interesting issue.
hello_word was built with the default Makefile for the PPC440GX and it runs just fine. But when it is modified so that "no" stdio is used and a structure init is attempted, it crashed U-Boot (see attachment) when hello_world returns.
int hello_world (int argc, char *argv[]) { struct pci_controller thehose = {0};
app_startup(argv); return (0); }
The interesting part is that when one or more stdio functions is added, printf() for example, there is no crash.
I was hoping that someone else might be able to reproduce this crash.
My current U-Boot image has about 8 exported functions in addition to the default ones. hello_world was built against this image to insure ABI compatibility.
Thanks for any suggestions, Andrew
=> go 40004 ## Starting application at 0x00040004 ... ## Application terminated, rc = 0x0 NIP: 00000000 XER: 00000000 LR: 00000000 REGS: 00365c20 TRAP: 0700 DAR: 00000000 MSR: 00029000 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00
GPR00: 00000000 00365D10 0000FFFF 00000000 0000000A 00000001 00000001 8D3F9F08 GPR08: 003D0900 00000001 877832C6 00000005 00000000 21000000 003F3100 00446000 GPR16: 80050000 00028100 00000000 80000002 00009000 00365AF8 00000000 00000001 GPR24: 00365E28 00000000 00365DF8 003C819C 0EFB0311 00000001 003D08FC 00365DF8 ** Illegal Instruction ** Call backtrace: 00000000 03000000 Program Check Exception NIP: 00000000 XER: 00000000 LR: 00000000 REGS: 00365c20 TRAP: 0700 DAR: 00000000 MSR: 00029000 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00
GPR00: 00000000 00365D10 0000FFFF 00000000 0000000A 00000001 00000001 8D3F9F08 GPR08: 003D0900 00000001 877832C6 00000005 00000000 21000000 003F3100 00446000 GPR16: 80050000 00028100 00000000 80000002 00009000 00365AF8 00000000 00000001 GPR24: 00365E28 00000000 00365DF8 003C819C 0EFB0311 00000001 003D08FC 00365DF8 ** Illegal Instruction **