0
1.5kviews
Explain interrupt/exceptions and its handling in ARM.
1 Answer
0
70views

An exception is an unexpected event that occurs  during the execution of a task and halts its normal execution.It is up to the system designer who can decide which hardware  peripheral can produce which interrupt/execution. The different ARM exceptions are as follows :

  1. Exceptions that are a direct effect of executing an instruction - Software interrupts, undefined instructions that include coprocessor instructions where the requested coprocessor is absent and prefetch aborts.Both are caused by an instruction entering the execution stage of the ARM instruction pipeline.
  2. Exceptions generated as a side effect of an instruction - Data aborts that arise when a memory fault occurs during a load or store data access.
  3. External exceptions, not related to instructions flow - Reset, Interrupt Request, Fast Interrupt Request belong to this group.

When an exception/interrupt takes place , ARM completes the execution of its current instruction and then moves on to handle the exception.The different ways in which interrupts are handled are as follows: 

  1. „ Non-nested interrupt handling scheme -This is the simplest interrupt handler. In this, interrupts are disabled until control is returned to the interrupted task. One interrupt can be served at a time.It is not suitable for complex embedded systems.
  2. Nested interrupt handling scheme - It can handle more than one interrupt at a time by enabling interrupts before fully serving the current interrupt. The latency is improved and system is more complex. Also,normal interrupts can block critical interrupts as there is no priority.
  3. „Prioritized simple interrupt handling - In this, each interrupt has a priority. Priority interrupts can be handled by software or hardware.

          Hence, the above mentioned ones are the main schemes to handle interrupts.

Please log in to add an answer.