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

        

_________________ __wake_up disassemble code  ______________________________

0x02216568  E1A0C00D  MOV       R12,R13
0x0221656C  E92DDFF0  STMDB     R13!,{R4-R12,R14-PC}
0x02216570  E24CB004  SUB       R11,R12,#0x00000004
0x02216574  E3500000  CMP       R0,#0x00000000
0x02216578  E24DD004  SUB       R13,R13,#0x00000004
0x0221657C  E50B102C  STR       R1,[R11,#-0x002C]
0x02216580  0A000031  BEQ       0x0221664C
0x02216584  E10F8000  MRS       R8,CPSR
0x02216588  E3883080  ORR       R3,R8,#0x00000080
0x0221658C  E121F003  MSR       CPSR_c,R3
0x02216590  E1A06002  MOV       R6,R2
0x02216594  E5B04004  LDR       R4,[R0,#0x0004]!
0x02216598  E1A03000  MOV       R3,R0
0x0221659C  E1540003  CMP       R4,R3
0x022165A0  E1A09003  MOV       R9,R3
0x022165A4  0A000024  BEQ       0x0221663C
0x022165A8  E59F7094  LDR       R7,[PC,#0x0094]
0x022165AC  E59FA094  LDR       R10,[PC,#0x0094]
0x022165B0  E5140004  LDR       R0,[R4,#-0x0004]
0x022165B4  E51B202C  LDR       R2,[R11,#-0x002C]
0x022165B8  E5903000  LDR       R3,[R0]
0x022165BC  E1130002  TST       R3,R2
0x022165C0  0A00001A  BEQ       0x02216630
0x022165C4  E3A02000  MOV       R2,#0x00000000
0x022165C8  E10F5000  MRS       R5,CPSR
0x022165CC  E3853080  ORR       R3,R5,#0x00000080
0x022165D0  E121F003  MSR       CPSR_c,R3
0x022165D4  E5802000  STR       R2,[R0]
0x022165D8  E590303C  LDR       R3,[R0,#0x003C]
0x022165DC  E1530002  CMP       R3,R2
0x022165E0  1A00000A  BNE       0x02216610
0x022165E4  E5971004  LDR       R1,[R7,#0x0004]
0x022165E8  E280203C  ADD       R2,R0,#0x0000003C
0x022165EC  E5872004  STR       R2,[R7,#0x0004]
0x022165F0  E580703C  STR       R7,[R0,#0x003C]
0x022165F4  E5821004  STR       R1,[R2,#0x0004]
0x022165F8  E5812000  STR       R2,[R1]
0x022165FC  E59A3000  LDR       R3,[R10]
0x02216600  E2833001  ADD       R3,R3,#0x00000001
0x02216604  E58A3000  STR       R3,[R10]
0x02216608  EBFFFE60  BL        0x02215F90
0x0221660C  E3A02001  MOV       R2,#0x00000001
0x02216610  E121F005  MSR       CPSR_c,R5
0x02216614  E3520000  CMP       R2,#0x00000000
0x02216618  0A000004  BEQ       0x02216630
0x0221661C  E5143008  LDR       R3,[R4,#-0x0008]
0x02216620  E3130001  TST       R3,#0x00000001
0x02216624  0A000001  BEQ       0x02216630
0x02216628  E2566001  SUBS      R6,R6,#0x00000001
0x0221662C  0A000002  BEQ       0x0221663C
0x02216630  E5944000  LDR       R4,[R4]
0x02216634  E1540009  CMP       R4,R9
0x02216638  1AFFFFDC  BNE       0x022165B0
0x0221663C  E121F008  MSR       CPSR_c,R8
0x02216640  EA000001  B         0x0221664C
0x02216644  022EB344  EOREQ     R11,R14,#0x10000001
0x02216648  022F30E0  EOREQ     R3,PC,#0x000000E0
0x0221664C  E91BAFF0  LDMDB     R11,{R4-R11,R13,PC}
0x02216650  E1A0C00D  MOV       R12,R13 

_____________________________________________________________



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

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

_______________________________________________
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