To illustrate this, use is made of a basic demo application. This application consists of a timer based ISR which fires every 2.5µs. The ISR writes an integer to a pipe. The other end of the pipe is read by a thread. This thread is activated every time the pipe contains 50 integers. Meanwhile two other threads, having a higher priority, are sleeping for some time after which they read a single integer from the same pipe. The structure of this application is shown in the figure to the right.
The AVIX tracing mechanism (Thread Activation Tracing) allows realtime monitoring of the activity of this application using a Logic Analyzer. For this purpose, the ISR toggles an I/O port so the activation of the ISR can be monitored also. Finally the idle thread (the active thread when no applications threads are running) is monitored.
Actual interrupt rates may be lower, based on code complexity