Hello Chris,

update. If I disable cache completely then I find code
relocated right at the given address

On Thursday 19 of May 2016 14:50:55 Pavel Pisa wrote:
> All seem to be right to this place but when I disassemble target
> function I get
>
>    0x1cb018:  push    {r4, r5, r6, r7, r8, lr}
>    0x1cb01c:  mov     r7, r0
>    0x1cb020:  mov     r6, r1
>    0x1cb024:  ldr     r0, [pc, #64]   ; 0x1cb06c
>    0x1cb028:  ldr     r1, [r1]
>    0x1cb02c:  bl      0x1cb02c
>                         !!!!!!!!!!!!!!!
>    0x1cb030:  cmp     r7, #1
>    0x1cb034:  ble     0x1cb064
>    0x1cb038:  mov     r5, r6
>    0x1cb03c:  mov     r4, #1
>
> It seem that call to printf function is not updated.

   0x1cb018:    push    {r4, r5, r6, r7, r8, lr}
   0x1cb01c:    mov     r7, r0
   0x1cb020:    mov     r6, r1
   0x1cb024:    ldr     r0, [pc, #64]   ; 0x1cb06c
   0x1cb028:    ldr     r1, [r1]
   0x1cb02c:    bl      0x73058 <printf>
   0x1cb030:    cmp     r7, #1
   0x1cb034:    ble     0x1cb064
   0x1cb038:    mov     r5, r6
   0x1cb03c:    mov     r4, #1

So it seems that update does not get into instruction
cache if cache is enabled and because I read not updated
code even by debugger I expect that it is lost even from
data cache. It seems like there is missing clear cache
operation before cache invalidate and cache invalidate
does not apply only to instructions but even to the data one.
Or there is missing drain data buffer.

Best wishes,

               Pavel


_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to