11.9 Testing Multitasking Software
11.9.1 Basic Issues
Generally, testing multitasking software involves both debugging and performance analysis. However, a key point is that it is concerned with the debugging of completed, executing software within a target environment.
What distinguishes conventionally written microprocessor programs from multitasking software? The answer is that multitasking designs are fundamentally built up as a number of cooperating tasks that run concurrently. Some are interrupt-driven. Some need to respond to interrupt- or non-interrupt-driven asynchronous external events. Data and signals have to be transferred between tasks, and task execution must be carefully synchronized. And for embedded systems, this must be done in a predictable and timely manner. Therefore, a multitasking debugger must not only provide all the features discussed so far; it should also have extra facilities to handle the particular requirements of real-time multitasking systems...