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

Cortex R5 behavior when a masked imprecise/asynchronous abort occurs

Hello,

I am currently working on the cortex R5 and I am wondering its behavior when a masked imprecise abort occurs. Indeed, The A-bit in the CPSR is set by default. Which mean that imprecise abort will be masked.

My problem is to understand in which state will be the core after a masked asynchronous abort. Can we imagine it will infinitely loop on the instruction responsible for the abort ? Maybe it will just ignore the instruction ?

I did not find answers among documentations so I ask for your help.

Thanks you.

Antoine

Parents
  • Hi,

    We have a related question: can asynchronous aborts be pending? Our experiments on a Cortex-R5 shows that yes: if the code generating the async abort is executed while CPSR.A=1, then the abort is taken once the A bit is unmasked. However, this is strange because there is no pending status flag for that interrupt...

    Also, before unmasking CPSR.A, is it possible to look to a register to know if we'll get an exception upon unmasking it? That is possible with CPSR.I/F by looking at status registers in the IRQ/FIQ interrrupt controller. If not, that may be a problem for an RTOS: it wants to make sure no errors are pending before unmasking interrupts to launch a task.

    When an asynchronous abort occurs, is it memorized in the Cortex-R5 core in some hidden bit / latch? It seems so because external peripherals do not keep that information.

    Related to that, I couldn't find in Cortex-R5 TRM r1p2 Annex A "Signal Descriptions" a signal for external asynchronous aborts. Is it through BRESPMm/RRESPMm AXI signals?

    Thanks.

Reply
  • Hi,

    We have a related question: can asynchronous aborts be pending? Our experiments on a Cortex-R5 shows that yes: if the code generating the async abort is executed while CPSR.A=1, then the abort is taken once the A bit is unmasked. However, this is strange because there is no pending status flag for that interrupt...

    Also, before unmasking CPSR.A, is it possible to look to a register to know if we'll get an exception upon unmasking it? That is possible with CPSR.I/F by looking at status registers in the IRQ/FIQ interrrupt controller. If not, that may be a problem for an RTOS: it wants to make sure no errors are pending before unmasking interrupts to launch a task.

    When an asynchronous abort occurs, is it memorized in the Cortex-R5 core in some hidden bit / latch? It seems so because external peripherals do not keep that information.

    Related to that, I couldn't find in Cortex-R5 TRM r1p2 Annex A "Signal Descriptions" a signal for external asynchronous aborts. Is it through BRESPMm/RRESPMm AXI signals?

    Thanks.

Children