Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How the interrupt is serviced?

Status
Not open for further replies.

MagicSpark

Newbie level 5
Joined
Oct 17, 2006
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,370
I found the following description about how the most processors service an interrupt. The steps are as follows:

1. Hardware generates the interrupt pulse

2. The interrupt controller (if any) prioritizes multiple simultaneous requests, and issues a single interrupt to the processor

3. The CPU responds with an interrupt acknowledge cycle

4. The controller drops an interrupt vector on the databus

5. The CPU reads the vector, and computes the address of the user-stored vector in memory. It then fetches this value.

6. The CPU pushes the current context, disables interrupts, and jumps to the ISR


My questions are:

The above description uses "CPU responds", "CPU reads", "CPU pushes" terms.

I'd like to know what steps are performed by hardware, and what steps are performed by software (OS or embedded program)?

Could anyone also give detailed description of step 6, i.e. who (hardware or software) and what (registers, process context, etc) are stored in stack. Who and how provides and implements jump to ISR?

Thanks in advance
 

Well basically wut happens.. and interrupt call , stops the microcontroller to function normally rather the program jumps to another function called Interrupt Service Routine to finish of the job it has to do in that function.
So when an interrupt calls.. the priority is checked and that particular interrupt is serviced. The CPU stores(pushes ) the current content of Program counter and Accumulator onto Stack .. dis is done because the calculations done when servicing the interrupt function.. the value in accumulator may change.
When the function getz over.. the CPU den pops or retrieves the value from the stack and starts itz normal processing from where it previously left
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top