How often do you notice things like in this photo?
One of the more underappreciated aspects of a multithreaded RTOS application is that you cannot just look at the code to fully understand how the application works.
A clear indication that you may have a deadlock problem is when multiple tasks suddenly stop executing, although no higher priority tasks are running.
As a developer, you have to watch out for programming pitfalls that can result in a higher priority task having to wait for a lower priority task ? this condition is known as priority inversion.
The visible symptoms of jitter can be very similar to what you see in a system that suffers from CPU starvation, from general sluggishness to intermittent data loss or even malfunction.
In embedded systems using multitasking, you may run into a situation where some of your tasks run slowly or not at all. This is called task starvation.
There are several reasons that debugging an RTOS system is different from debugging a single-threaded ?superloop? system where you wrote all code yourself, but these are the top two.
In the near future, almost everything will be connected to the Internet - at least, that's the vision for the Internet of Things (IoT). This vision...