[okl4-developer] memory address conversion from process to wombat

Geoffrey Lee glee at ok-labs.com
Fri Sep 5 11:55:19 EST 2008


On Thu, Sep 04, 2008 at 10:56:01AM -0700, Damien Schulz wrote:
> Hi there,
> 
> currently I'm trying to execute OKL4 1.5.2 including Wombat on an Samsung s3c2440 SoC.
> After some time I always get the following error (console output):
> 
> <6>alignment fault:  @ 1032c, faddr=35ff75a2 in: dummyapp (50)
> Segmentation fault

Hi Damien

This appears to be a Linux program error, not a kernel problem.
The program counter at the time the Linux program was running
was 1032c and the fault address was 35ff75a2, which indeed
appears to be unaligned.  Is it possible to disassemble the
Linux program to see what it was doing at that time?

	-gl

> 
> Code around the faulty instruction (in l4kernel):
> 
> f00102a8 <__udivsi3>:
> f00102a8:   e2512001    subs    r2, r1, #1  ; 0x1
> f00102ac:   01a0f00e    moveq   pc, lr
> f00102b0:   3a000036    bcc f0010390 <__udivsi3+0xe8>
> f00102b4:   e1500001    cmp r0, r1
> f00102b8:   9a000022    bls f0010348 <__udivsi3+0xa0>
> f00102bc:   e1110002    tst r1, r2
> f00102c0:   0a000023    beq f0010354 <__udivsi3+0xac>
> f00102c4:   e311020e    tst r1, #-536870912 ; 0xe0000000
> f00102c8:   01a01181    moveq   r1, r1, lsl #3
> f00102cc:   03a03008    moveq   r3, #8  ; 0x8
> f00102d0:   13a03001    movne   r3, #1  ; 0x1
> f00102d4:   e3510201    cmp r1, #268435456  ; 0x10000000
> f00102d8:   31510000    cmpcc   r1, r0
> f00102dc:   31a01201    movcc   r1, r1, lsl #4
> f00102e0:   31a03203    movcc   r3, r3, lsl #4
> f00102e4:   3afffffa    bcc f00102d4 <__udivsi3+0x2c>
> f00102e8:   e3510102    cmp r1, #-2147483648    ; 0x80000000
> f00102ec:   31510000    cmpcc   r1, r0
> f00102f0:   31a01081    movcc   r1, r1, lsl #1
> f00102f4:   31a03083    movcc   r3, r3, lsl #1
> f00102f8:   3afffffa    bcc f00102e8 <__udivsi3+0x40>
> f00102fc:   e3a02000    mov r2, #0  ; 0x0
> f0010300:   e1500001    cmp r0, r1
> f0010304:   20400001    subcs   r0, r0, r1
> f0010308:   21822003    orrcs   r2, r2, r3
> f001030c:   e15000a1    cmp r0, r1, lsr #1
> f0010310:   204000a1    subcs   r0, r0, r1, lsr #1
> f0010314:   218220a3    orrcs   r2, r2, r3, lsr #1
> f0010318:   e1500121    cmp r0, r1, lsr #2
> f001031c:   20400121    subcs   r0, r0, r1, lsr #2
> f0010320:   21822123    orrcs   r2, r2, r3, lsr #2
> f0010324:   e15001a1    cmp r0, r1, lsr #3
> f0010328:   204001a1    subcs   r0, r0, r1, lsr #3
> f001032c:   218221a3    orrcs   r2, r2, r3, lsr #3                 <-- crash
> f0010330:   e3500000    cmp r0, #0  ; 0x0
> f0010334:   11b03223    movnes  r3, r3, lsr #4
> f0010338:   11a01221    movne   r1, r1, lsr #4
> f001033c:   1affffef    bne f0010300 <__udivsi3+0x58>
> f0010340:   e1a00002    mov r0, r2
> f0010344:   e1a0f00e    mov pc, lr
> 
> And this is what I google says to this problem:
>   https://lists.ertos.nicta.com.au/archives/kenge-users/2006-September/000352.html
> 
> It seems that a similar problem has already been fixed some time ago.
> 
> Has anyone an idea what could cause this problem?
> 
> Thank you,
> ~Damien
> 
> _______________________________________________
> Developer mailing list
> Developer at okl4.org
> https://lists.okl4.org/mailman/listinfo/developer
> 

-- 




More information about the Developer mailing list