Interrupt Service Routine

Difference between ISR and normal function

1) ISR has no parameter
2) ISR has no return value
3) ISR is asynchronous to instruction flow
4) ISR is triggered by hardware event
5) ISR can't call blocking function or non-reentrant function, such as printf()
6) ISR should be as short as possible, shouldn't call function which require long time to execute, such as printf(), floating point function…
7) ISR can't be blocked, can't wait on semephor, but can signal

Debugging ISR — ISR debugging 1 — ISR debugging 2

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License