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