RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

Prefetch Abort Handler

OS SWI Calls
» OS_ChangeEnvironment
» Prefetch Abort Handler

Prefetch Abort Handler

The prefetch abort handler is entered in the following state:

  • The processor will be in ABT32 mode, with IRQs disabled
  • FIQ state will match that at the time of the exception
  • R14 & SPSR_und will contain the exception address and saved PSR, corresponding to when the exception was raised by the CPU. R14 will be pointing to the instruction after the instruction that caused the exception.
  • The other core registers will be as per when the exception was raised by the CPU. However if your code examines the registers it must take care to use the correct register bank (e.g. if the exception was from user mode, it should look at R14_usr, not R14_abt).
  • R13 will be a valid stack pointer
  • CP15 registers relating to exception processing will be in the correct state corresponding to that exception

If the handler is capable of handling the exception then it can resume execution by performing a suitable exception return operation.

Notes

On 26bit OS versions, the CPU will be in SVC26 mode, with R14 containing the combined LR+PSR.

The kernel’s default handler will save a copy of the ARM integer registers (corresponding to the CPU mode the exception occurred in) to the Exception Registers Block, reset the stack pointers for all the privileged CPU modes, and then call OS_GenerateError to report a Prefetch Abort error.

See also

  • OS_ChangeEnvironment
Created on June 12, 2018 19:37:06 by Jeffrey Lee (213) (86.137.26.134)
Edit | Views: Print | Source | Linked from: System Control Handlers, OS_SetEnv

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys