Hello,

I have a problem using a TObject on arm embedded (cortex m0: an atmel samd10x14).
It boils down to this:

00002124 <SYSTEM_$$_GETMEM$POINTER$LONGWORD>:
    2124:    b510          push    {r4, lr}
    2126:    b08a          sub    sp, #40    ; 0x28
    2128:    1c04          adds    r4, r0, #0
    212a:    1c08          adds    r0, r1, #0
212c: 4902 ldr r1, [pc, #8] ; (2138 <SYSTEM_$$_GETMEM$POINTER$LONGWORD+0x14>)
    212e:    6809          ldr    r1, [r1, #0]
    2130:    4788          blx    r1
    2132:    6020          str    r0, [r4, #0]
    2134:    b00a          add    sp, #40    ; 0x28
    2136:    bd10          pop    {r4, pc}
    2138:    20000140     andcs    r0, r0, r0, asr #2

When the debugger stops at 212e, r1 is correctly filled with 0x20000140.
On the next step, r1 is zero , and the program crashes on the blx.

Could anybody point me towards the right direction ? What should I expect as the normal behavior at this point.
Thanks.

Ps1: this is fpc_getmem

00002178 <fpc_getmem>:
    2178:    b500          push    {lr}
    217a:    b08a          sub    sp, #40    ; 0x28
217c: 4902 ldr r1, [pc, #8] ; (2188 <fpc_getmem+0x10>)
    217e:    6809          ldr    r1, [r1, #0]
    2180:    4788          blx    r1
    2182:    b00a          add    sp, #40    ; 0x28
    2184:    bd00          pop    {pc}
    2186:    46c0          nop            ; (mov r8, r8)
    2188:    20000140     andcs    r0, r0, r0, asr #2

Ps2: the memory at 0x20000140 is filled with zeros.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to