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

Prefetch Abort in Cortex M processors

Hi,

We are currently working with Cortex M4 processor and previously we worked with Cortex R5 processor. As part of our project requirement, we need to detect "prefetch abort" exception and to identify the corresponding address. In Cortex R5, we are taking these information from Instruction Fault Status Register (IFSR) and Instruction Fault Address Register (IFAR).

But in Cortex M4 processor, we understand that "prefetch abort" exception can be captured using BusFault exception (BFSR.IBUSERR). But as per M4 reference manual, we understand that the processor does not update the Bus Fault Address Register (BFAR). Kindly confirm whether our understanding is OK or not. Also please provide the information to get the address corresponding to "prefetch abort".

Regards,

Dinesh

Parents
  • Right BFAR is for data access faults: From the manual "Shows the address associated with a precise data access fault."
    And:
    BusFault on instruction fetch, precise
    Status bit  BFSR.IBUSERR
    Vector catch bit  DEMCR.VC_BUSERR
    Bus error on an instruction fetch. The fault occurs only if the processor attempts to execute the
    instruction. The processor does not update the Bus Fault Address Register.

Reply
  • Right BFAR is for data access faults: From the manual "Shows the address associated with a precise data access fault."
    And:
    BusFault on instruction fetch, precise
    Status bit  BFSR.IBUSERR
    Vector catch bit  DEMCR.VC_BUSERR
    Bus error on an instruction fetch. The fault occurs only if the processor attempts to execute the
    instruction. The processor does not update the Bus Fault Address Register.

Children
No data