This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

r0 corruption while making subroutine call on Cortex A-9

Hi,

I am running a bareboard code on i.MX6Quad board (It has Cortex A9 processor). The code is written in C and invokes function A in a while loop. Function A invokes Function B with 3 arguments.

After some cycles (around 100-200 cycles) of while loop, an exception occurs. When I investigate further I find this: the first argument received by subroutine B is 0. The second and third arguments are correct.

I checked the processor state when exception came. The stack region from where function A loads r0 has correct value when exception came. But r0 value at function B entry was not correct.

Also, this exception is observed only if MMU is ON. If MMU is OFF, the code works fine.

Parents
  • VsPrintk processes fmt and args to convert everything that is supposed to be printed into string format. That string is stored in buffer. 

    This buffer is later sent to console to be printed.

    Also, it doesn't seem it matters what VsPrintk does. The first argument (fmt) is 0 at the very first line of this function definition.

Reply
  • VsPrintk processes fmt and args to convert everything that is supposed to be printed into string format. That string is stored in buffer. 

    This buffer is later sent to console to be printed.

    Also, it doesn't seem it matters what VsPrintk does. The first argument (fmt) is 0 at the very first line of this function definition.

Children