If you are using multiple interrupts you may be getting into a conflict where each IRQ is waiting for the other to finish. A few things to check:
Have you tried wrapping either (or both) IRQ routines with disable_irq() and enable_irq() function so that an interrupt can't get "interrupted"? If that makes it work, you definitely have a deadlock situation. If so:
- Are the interrupts prioritized, that is, are they running at different priorities? If not, one may be waiting on the other
- Are you waiting on any I/O device from within any IRQ?
There are lots of ways to get into deadlock, sounds like this may be what is going on.
Or not ;-)
I have been making an whole system in which it measures temperature every 5 minutes and stores it in an flash drive . The data could be accessed via the ethernet port over than local LAN. It also does serial port communication with the use of interrupt. All works normally fine. But after taking some 10-15 readings the mbed gets hanged and does not work then. What could be causing this? Does mbed have any sleep state which it might be going into?