|  
                   EMUL-ARM 
                    has full support for the ARM ETM (Embedded Trace Macrocell). 
                    We have two different interfaces for this: 
                  
                    - CTM 
                      (Compact Trace Module) - traditional trace functionality
                  
  
                  Traditionally, 
                    JTAG debuggers have not had the capability to support trace. 
                    This is not a design choice by the debugger designer, it is 
                    determined by the silicon vendor. Trace support capability 
                    has only been available with In-Circuit Emulators which rely 
                    on the availability of "bond-out" chips, however 
                    there are no bond-out chips for ARM at this time. 
                  To facilitate 
                    tracing capabilities, ARM has created the ETM which adds a 
                    logic block inside the MCU and a number of pins (4, 8 or 16 
                    data bits + 4 status bits) that send the information. The 
                    more pins, the more information can be transferred. With fewer 
                    pins, and while trying to trace too much information, there 
                    will be an overflow internally in the MCU. Regardless of the 
                    implementation, the ETM is always capable of tracing program 
                    flow if all other options are disabled. 
                  An MCU 
                    manufacturer that wants to use the ETM needs to license it 
                    from ARM and then put it in their MCU. This results in licensing 
                    fees, additional silicon area and pins, which is probably 
                    why there have not been any general-purpose MCUs with that 
                    technology available. However, this is about to change. Philips 
                    has released their LPC210x MCU, Atmel has announced a new 
                    ARM9-based device with ETM, and there are more devices that 
                    are not yet announced. 
                  A trace 
                    is an optional part of an emulator system that supplies advanced 
                    debugging capabilities that include: 
                  
                    - Trace buffer size is 128k frames
                    
 - Storing 
                      the execution of instructions so that the history of execution 
                      that led up to an error situation can be analyzed 
                    
 - Storing 
                      only a small portion of the program execution (filtering), 
                      and can be applied on address range, among others 
                    
 - Setting 
                      complex conditions that identify very specific events caused 
                      by the microcontroller and which then can stop the trace 
                      (triggering) 
                    
 - Storing 
                      timestamp information for every recorded "frame", 
                      allowing you to measure how long it takes to execute certain 
                      functions
 
                       
                    
                   
                  
                 |