Hi,

        I think that the problem is at the stack initialization. I
disassemble the code at __wake_up and the address that generates the data
abort ...

0x00012568  E1A0C00D  MOV       R12,R13
0x0001256C  E92DDFF0  STMDB     R13!,{R4-R12,R14-PC}
0x00012570  E24CB004  SUB       R11,R12,#0x00000004
0x00012574  E3500000  CMP       R0,#0x00000000
0x00012578  E24DD004  SUB       R13,R13,#0x00000004
0x0001257C  E50B102C  STR       R1,[R11,#-0x002C]
0x00012580  0A000031  BEQ       0x0001264C
0x00012584  E10F8000  MRS       R8,CPSR
0x00012588  E3883080  ORR       R3,R8,#0x00000080
0x0001258C  E121F003  MSR       CPSR_c,R3
0x00012590  E1A06002  MOV       R6,R2
0x00012594  E5B04004  LDR       R4,[R0,#0x0004]!
0x00012598  E1A03000  MOV       R3,R0
0x0001259C  E1540003  CMP       R4,R3
0x000125A0  E1A09003  MOV       R9,R3
0x000125A4  0A000024  BEQ       0x0001263C
0x000125A8  E59F7094  LDR       R7,[PC,#0x0094]
0x000125AC  E59FA094  LDR       R10,[PC,#0x0094]

0x000125B0  E5140004  LDR       R0,[R4,#-0x0004] <----------- DATA ABORT
R4=0XE597FF018 


0x000125B4  E51B202C  LDR       R2,[R11,#-0x002C]
0x000125B8  E5903000  LDR       R3,[R0]
0x000125BC  E1130002  TST       R3,R2
0x000125C0  0A00001A  BEQ       0x00012630
0x000125C4  E3A02000  MOV       R2,#0x00000000
0x000125C8  E10F5000  MRS       R5,CPSR
0x000125CC  E3853080  ORR       R3,R5,#0x00000080
0x000125D0  E121F003  MSR       CPSR_c,R3
0x000125D4  E5802000  STR       R2,[R0]
0x000125D8  E590303C  LDR       R3,[R0,#0x003C]
0x000125DC  E1530002  CMP       R3,R2
0x000125E0  1A00000A  BNE       0x00012610
0x000125E4  E5971004  LDR       R1,[R7,#0x0004]
0x000125E8  E280203C  ADD       R2,R0,#0x0000003C
0x000125EC  E5872004  STR       R2,[R7,#0x0004]
0x000125F0  E580703C  STR       R7,[R0,#0x003C]
0x000125F4  E5821004  STR       R1,[R2,#0x0004]
0x000125F8  E5812000  STR       R2,[R1]
0x000125FC  E59A3000  LDR       R3,[R10]
0x00012600  E2833001  ADD       R3,R3,#0x00000001
0x00012604  E58A3000  STR       R3,[R10]
0x00012608  EBFFFE60  BL        0x00011F90
0x0001260C  E3A02001  MOV       R2,#0x00000001
0x00012610  E121F005  MSR       CPSR_c,R5
0x00012614  E3520000  CMP       R2,#0x00000000
0x00012618  0A000004  BEQ       0x00012630
0x0001261C  E5143008  LDR       R3,[R4,#-0x0008]
0x00012620  E3130001  TST       R3,#0x00000001
0x00012624  0A000001  BEQ       0x00012630
0x00012628  E2566001  SUBS      R6,R6,#0x00000001
0x0001262C  0A000002  BEQ       0x0001263C

0x00012630  E5944000  LDR       R4,[R4] <--------- DATA ABORT R4=0XE597FF018

0x00012634  E1540009  CMP       R4,R9
0x00012638  1AFFFFDC  BNE       0x000125B0
0x0001263C  E121F008  MSR       CPSR_c,R8
0x00012640  EA000001  B         0x0001264C
0x00012644  022EB344  EOREQ     R11,R14,#0x10000001
0x00012648  022F30E0  EOREQ     R3,PC,#0x000000E0
0x0001264C  E91BAFF0  LDMDB     R11,{R4-R11,R13,PC}
0x00012650  E1A0C00D  MOV       R12,R13


Is the value of R4 the stack pointer register? the value of R4 in two cases
is 0xE97FF018.

It's the problem in the head-armv.S ?

Thanks

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de rflores
Enviado el: miércoles, 14 de febrero de 2007 13:38
Para: 'uClinux development list'
Asunto: RE: [uClinux-dev] uClinux on AT91 (Data abort in __wake_up)

Hi Erwin,

        Following your advise I have programmed my own bootloader in order
to      trace the "data abort exception" when running uClinux.
 
        The address that contains the instructions that cause the data abort
are:

                0x022125B0 and 0x02212630, the data abort is generated
continuously by the instructions located in these addresses.

        These addresses are in __wake_up (I attach the system.map).

        Any suggestions about the error?, what source code can I check out? 

Thanks, Ramón  

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de rflores
Enviado el: martes, 13 de febrero de 2007 11:48
Para: 'uClinux development list'
Asunto: RE: [uClinux-dev] uClinux on AT91

OK, thanks Erwin, 

How I can debug the kernel? Which debugger I can use?


Thanks, Ramón

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Erwin Authried
Enviado el: lunes, 12 de febrero de 2007 16:55
Para: uClinux development list
Asunto: Re: [uClinux-dev] uClinux on AT91

Am Montag, den 12.02.2007, 15:09 +0100 schrieb rflores:

>             RedBoot> go 0x02200000
> 
>  
> 
> But in the ARM ocuurs a Data Abort Exception. 
> 
>  
> 
> ¿Whats wrong? ¿ That other parameters I must change to run uClinux?
> 
there can be 1000 reasons for an exception, without any detail it is
impossible to figure out the reason. You have to do some debugging to
see what happens. If you can figure out the address of the exception,
look into System.map where that happens.

Regards,
Erwin



_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to