The current state-of-the-art technology for comprehensive system analysis and debugging is very clearly on-chip trace, in other words recording of executed machine commands (code trace) and data transfer between the cores, memories as well as the system buses (data trace). The method is now available for most microcontroller architectures; it is widely used for testing and performance measurements and all professional tool manufacturers offer appropriate support.
In order to take full advantage of the theoretical observation possibilities on the running system, in addition, signals of the peripheral units must additionally therefore also be used as a further trace source. It is ultimately these that make a deeper insight into the complex SoC architectures at all possible in the first place. The resulting additional testing and measurement capabilities can be best documented from the example of Infineon's AURIX™ (AUtomotive Realtime Integrated neXt generation architecture) SoCs.
At present, the current AURIX™ family is undoubtedly one of the most powerful microcontroller systems in its market segment. With the up to three TriCore™ CPUs, optional lockstep mechanism, freely programmable active units for signal generation and processing, integrated tuning protection, powerful peripheral components and memory protection mechanisms — these highly complex automotive SoCs are ideally suited for use in both engine and transmission management with the highest performance and safety needs and in hybrid and electrical vehicles. However, as already mentioned at the beginning, debugging and analysis of such complex, high-performance systems requires completely new approaches regarding debugging support and trace.
The developers at Infineon were also aware of this right from the beginning, but how do you generate trace sources, which enable a comprehensive runtime analysis of the whole system? Well, as every system designer knows, integrated peripheral units such as DMA, CAN or FlexRay controllers have a significant influence on the real-time behavior of an application. Why not then integrate special debug information of such units into the trace stream (hereinafter