STM32F4 failure on semaphore release in termios.

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Aug 30 06:58:31 UTC 2013


On 2013-08-28 23:30, Karel Gardas wrote:
> _Internal_error_Occurred (the_source=RTEMS_FATAL_SOURCE_EXCEPTION,
> is_internal=false, the_error=536875260)

If you get an exception like this, then you can use in GDB to figure out the 
context (the actual program counter of the exception is not the direct value of 
register_pc):

Breakpoint 6, _Internal_error_Occurred 
(the_source=RTEMS_FATAL_SOURCE_EXCEPTION, is_internal=false, the_error=1049524) 
at ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:35
35        _User_extensions_Fatal( the_source, is_internal, the_error );
(gdb) p/x *(CPU_Exception_frame *)the_error
$1 = {
   register_r0 = 0x10009000,
   register_r1 = 0xa,
   register_r2 = 0x0,
   register_r3 = 0x80000000,
   register_r4 = 0x0,
   register_r5 = 0x0,
   register_r6 = 0x0,
   register_r7 = 0x110b90,
   register_r8 = 0x0,
   register_r9 = 0x0,
   register_r10 = 0x0,
   register_r11 = 0x0,
   register_r12 = 0x10cda8,
   register_sp = 0x110b90,
   register_lr = 0x909,
   register_pc = 0x8c6,
   register_cpsr = 0x80000033,
   vector = 0x3,
   vfp_context = 0x1002a8
}
(gdb) disas 0x8c6
Dump of assembler code for function provoke_aligment_or_data_access_exception:
    0x00000884 <+0>:     push    {r7}
    0x00000886 <+2>:     sub     sp, #28
    0x00000888 <+4>:     add     r7, sp, #0
    0x0000088a <+6>:     movs    r3, #1
    0x0000088c <+8>:     str     r3, [r7, #4]
    0x0000088e <+10>:    movs    r3, #32
    0x00000890 <+12>:    str     r3, [r7, #20]
    0x00000892 <+14>:    movs    r3, #1
    0x00000894 <+16>:    str     r3, [r7, #16]
    0x00000896 <+18>:    movs    r3, #0
    0x00000898 <+20>:    str     r3, [r7, #12]
    0x0000089a <+22>:    ldr     r3, [r7, #12]
    0x0000089c <+24>:    ldrd    r2, r3, [r3]
    0x000008a0 <+28>:    ldr     r3, [r7, #20]
    0x000008a2 <+30>:    subs    r3, #1
    0x000008a4 <+32>:    str     r3, [r7, #20]
    0x000008a6 <+34>:    ldr     r2, [r7, #4]
    0x000008a8 <+36>:    ldr     r3, [r7, #20]
    0x000008aa <+38>:    lsl.w   r3, r2, r3
    0x000008ae <+42>:    str     r3, [r7, #12]
    0x000008b0 <+44>:    ldr     r3, [r7, #12]
    0x000008b2 <+46>:    lsls    r3, r3, #1
    0x000008b4 <+48>:    str     r3, [r7, #0]
    0x000008b6 <+50>:    movs    r3, #0
    0x000008b8 <+52>:    str     r3, [r7, #8]
    0x000008ba <+54>:    b.n     0x8d0 
<provoke_aligment_or_data_access_exception+76>
    0x000008bc <+56>:    ldr     r3, [r7, #12]
    0x000008be <+58>:    ldrd    r2, r3, [r3]
    0x000008c2 <+62>:    ldr     r3, [r7, #8]
    0x000008c4 <+64>:    adds    r3, #1
    0x000008c6 <+66>:    str     r3, [r7, #8]
    0x000008c8 <+68>:    ldr     r2, [r7, #12]
    0x000008ca <+70>:    ldr     r3, [r7, #0]
    0x000008cc <+72>:    add     r3, r2
    0x000008ce <+74>:    str     r3, [r7, #12]
    0x000008d0 <+76>:    ldr     r2, [r7, #8]
    0x000008d2 <+78>:    ldr     r3, [r7, #16]
    0x000008d4 <+80>:    cmp     r2, r3
    0x000008d6 <+82>:    bcc.n   0x8bc 
<provoke_aligment_or_data_access_exception+56>
    0x000008d8 <+84>:    ldr     r3, [r7, #16]
    0x000008da <+86>:    lsls    r3, r3, #1
    0x000008dc <+88>:    str     r3, [r7, #16]
    0x000008de <+90>:    ldr     r3, [r7, #20]
    0x000008e0 <+92>:    cmp     r3, #0
    0x000008e2 <+94>:    bgt.n   0x8a0 
<provoke_aligment_or_data_access_exception+28>
    0x000008e4 <+96>:    adds    r7, #28
    0x000008e6 <+98>:    mov     sp, r7
    0x000008e8 <+100>:   ldr.w   r7, [sp], #4
    0x000008ec <+104>:   bx      lr
End of assembler dump.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list