Real World Project Experience
The course of an embedded product follows a well-known path, with points of increasing in difficulty as the end is approached. A products success is entirely based on functionality and reliability. Reliability is not a question that arises in the mind of the customer, it is an accepted fact. The engineering goal in delivering any product is zero bugs as part of the system.
We knew that our system was well designed, coded to exacting standards and debugged seemingly endlessly with the tool set debugger, using breakpoints, watch windows and views of the stack and other methods. However, under some non-repeatable conditions the system would lock, some tasks would not run as expected or at all. A further difficulty was that these problems did not occur on our development system on which the engineers were working, but rather on the systems given to customers for testing. Using Percepio Trace Recorder we visually saw where and when the system was failing. There were conditions under which a semaphore was causing an embrace of death and another where the CPU was locking in a spin loop. None of these were able to be found with classical debug tools because the debugger intruded on the operation of the system. But Trace Recorder had negligible impact on the system determinism and therefore we were able to easily identify the problem under running conditions.
Without a mechanism to trace real time execution, load and event impacts in an embedded system, there can be a great deal of engineering time lost. These final testing problems always occur just before the release of the product, and are high risk, expensive in engineering costs to find and often delay the release of the product. All products must go through this final step. Without a tool like Percepio Trace Recorder this last step is like sugery in the dark without a light or scalpel.
Robert Lewis, P. Eng., M.Sc. E.E.
iMn MicroControl Ltd.
604.356.0793SimpleMind Pro - Percepio Reducing_ Risk, Cost and Time in - Real Time Embedded Products v3