Tuesday, October 2, 2007

Interrupts handling

Hello everyone,

We have received lots of questions from our customers regarding how interrupts are being handled.

Interrupts handling is much more simpler from what you might thought in the AIRcable, even simpler from a PC interrupt schema.

Basically as in any other processor you have an interrupt stack, where each new even get's registered. The biggest difference between this stack schema and the PC schema is that interrupts are only pushed at bottom or at top of the stack, depending the interrupt priority.

Only 4 interrupts are pushed to the top: @ALARM, @PIN_CODE, @MESSAGE and @FTP. You might ask your self why @INQUIRY is not high priority, as we insist so much in making it short as possible, simple because if @INQUIRY would be high priority it would interrupt it self.

So how does the interrupt handler work? Simple each time a new interrupt is pushed into the stack it checks if it goes in the top of the current serviced interrupt, if it does then it goes to service that new interrupt, if it doesn't it will execute the code until it reaches RETURN. Once it reaches RETURN it will go and see if the stack has more stuff to service.

As you might know every processor allows you to disable interrupts, this is achieved by adding ; at the end of each line.

I think this will clarify all your questions regarding interrupts, if you have more questions for us please leave your comments and we will be glad to help you.

Thanks,
Manuel