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
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.
Wow, old thread.
Yes, an async abort will be pended until it can be taken (i.e. the CPSR.A bit cleared). In terms of checking for async aborts, later processors have the ISR register, which lets you do this. But I don't believe it is present on the Cortex-R5.