2 Replies Latest reply on Nov 2, 2015 1:41 AM by userc_22051

    Interrupt and CPU availability



      I have an issue with, I believe, interrupt rates and the time it takes to process them.


      I have an accelerometer sensor that sends me 30 interrupts per seconds, which I process. I have some other components that runs at the same time (specifically 1sec timer & 40ms timer) : they process long operation, such as writing to my flash memory, scanning for RFID tags, waiting for GPS location.


      Everything works well, up until a random moment (1min to 5mins) where I just stop receiving any of the interrupts from the accelerometer. And they never come back, until I reset my board. My guess is that it comes from an unfortunate timing between the different components of my board and the CPU just can't process everything. Would that make sense? For example, in the RFID scanning, I use a sleep of 750us. It might be messing things up?


      If it is the case, I can see that I need to tweak my application so this unfortunate event just does not occur. But to do so, I need to understand how interrupts are dealt with. Are they threaded? Can a timer interrupt an interrupt? Can an interrupt interrupt an interrupt? (wow sorry for that phrase) Is the OS is a RTOS? Basically, any information on the internals of the software runtime of the boards would be interesting for me. (I am using the BCM20737)