[uClinux-dev] uClinux on AT91 (Simulated Data abort in __wake_up)

Erwin Authried eauth at softsys.co.at
Fri Feb 16 08:16:26 EST 2007


Am Freitag, den 16.02.2007, 13:37 +0100 schrieb rflores:
> Hi,
> 
> 	I can simulate the uClinux image.bin in Keil Software Environment,
> the 	disassembled code in the last mail is from this environment.
> 
> 	In the Makefile of the linker The TEXTADDR is fixed at 0x02024000, 
> 
> 	In the make menuconfig the RAM is fixed at 0x02200000 with length of
> 0x400000 and the 	flash is fixed at 0x01010000 with length of 0x190000
> (reserved 0x10000 for bootloader 0x01000000-0x1010000).
> 
> 	In my board the result is the same as the one of my simulation.
> 
> 	The kernel crashes at __wake_up function, at the addresses 
> 
> 	Data Abort: ARM Instruction at 022165B0H, Memory Access at E59FF014H
> 	Data Abort: ARM Instruction at 02216630H, Memory Access at E59FF018H
> 
> 	Where is the source code of __wake_up ????
> 
> 	In this instruction the first time R4 points to 0x0000000 reset
> vector 	and in the second time R4 contains the instruction located at R0,
> and 	crashes because tries to access at address E59FF014 but this is code
> instruction. 
> 
> 		0x022165B0  E5140004  LDR       R0,[R4,#-0x0004] 
> 
> 	The other data abort is a similar case.
> 
> Any idea? I'm very very blocked in this point. 
> 
> Thanks

do you see any output of printk? If the printk output isn't working for
some reason, you can try to use the functions in
arch/armnommu/kernel/debug.c to write messages into a reserved memory
space, and read that out later by JTAG. You can reduce your memory size
to make space at the top of ram, so that you use as a buffer. Although
it's a very rude hack, it can be incredibly helpful until the serial
console is working. You have to call at91_debug_init() first. You can
put at91_debug_putn(...) into the printk function so that the whole
printk output is placed into the memory buffer, or place
at91_debug_str(..) calls into the source.

Regards,
Erwin




More information about the uClinux-dev mailing list