promice logo
Site layout    How to buy    Contact us     Return to homepage   
  Universal Firmware Development Tools
 
1-800-PROMICE  
   

Grammar Engine Logo

Search PromICE.com



 

Trace

 
 
  1. Can I trace my code with PromICE?
  2. What can I use trace for?
  3. What does trace capture?
  4. How do I see what I traced?
  5. Can I do a source-level trace?
  6. How fast a processor can I trace?
  7. Can I add trace to an existing PromICE?
  8. Can PromICE provide source level trace?
  9. Can I disassemble the trace data myself?
  10. Can I use trace with AI?
  11. How deep is the trace?
  12. What trace control is available?
  13. Can you trace if my processor uses prefetch and other cache features?
  14. What is "code coverage"? What can I use it for?
  15. How do I see what I traced?
  16. Can I use code coverage to "profile" my software?
  17. What is FlashICE?
  18. Do you still support Romulator/Romemulator/ROMboy?

1. Can I trace my code with PromICE?

Yes. Grammar Engine is shipping a Trace option for PromICE. It is available in either 128KByte or 512KByte depths and is 32-bit wide. It can be used to trace the full address range of an embedded target.

Back to Top


2. What can I use trace for?

The best applications for PromICE with Trace are for debugging board start-up code, BIOS modifications, and device drivers for peripherals. If you’re coding in assembly or developing low-level routines, it might be the only tool you need.

Embedded developers with complex systems using C++ code generators and an RTOS will also find PromICE with Trace invaluable. A simple trace buffer running with no system overhead provides post-mortem information after a system crash. It records the last locations accessed before the crash, providing a starting point for your investigation. Think of it as the "embedded black box". If you’re hunting a bug that occurs infrequently, you can connect PromICE with Trace - when the crash occurs, the trace record will be waiting for your analysis.

Back to Top


3. What does trace capture?

Trace captures memory accesses, either in the memory being emulated or anywhere in the target’s address range. This information can be viewed as memory location addresses in hex.

Back to Top


4. How do I see what I traced?

New LoadICE commands control trace and view the results. The trace result appears as a list of memory locations (in hex) that were accessed while trace was on. This listing can be uploaded to a host for viewing and searching with a text editor. The host can read and write trace memory without disturbing target emulation.

Back to Top


5. Can I do a source-level trace?

Not at this time. We are working with debugger companies to implement source-level trace support for PromICE with Trace. Watch our web site for future developments

Back to Top


6. How fast a processor can I trace?

Because PromICE traces memory accesses, trace is not tied to processor cycles. Different speeds of trace are available, and the fastest will traces memory accesses to 35ns, the same as the fastest PromICE.

Back to Top


7. Can I add trace to an existing PromICE?

The trace board requires a different power supply than existing PromICEs. Depending on the age of your existing PromICE, it is possible to trade your PromICE for a new PromICE with Trace. Contact your sales rep for details.

Back to Top


8. Can PromICE provide source level trace?

As a memory emulator, PromICE provides universal emulation, and works with any microprocessor. PromICE with Trace is also a universal product. Source level trace requires relating memory accesses to high level source lines. We will provide debugger companies with software libraries or DLLs that integrate support for source level trace via PromICE in their debuggers. Watch for support later this year.

Back to Top


9. Can I disassemble the trace data myself?

If you are programming in assembly language, it’s possible to pass the trace file through a table on your host to view the trace data in symbolic assembler. Several PromICE with Trace users do this now.

Back to Top


10. Can I use trace with AI?

An AI virtual UART is included on every trace board. It can be used as a serial channel for monitor-based debuggers, and is independent of the trace features.

Back to Top


11. How deep is the trace?

The trace buffer is available in 128K or 512K depths. The trace memory is 32-bit wide, with 21 address lines coming in from the ROM socket and the other 11 signals can be connected to the target directly. The setup allows you to use a 24-bit address and 8-bit data bus. There is also an external clock input.

Back to Top


12. What trace control is available?

Trace is fully configurable and controlled in over 60 variations. It is possible to start and stop trace on a specific address, access anywhere in a range of addresses, or when entering or leaving a range of addresses. You can also use counters to skip trace, begin tracing after a preset number of times a condition is met.

Back to Top


13. Can you trace if my processor uses prefetch and other cache features?

Like all trace tools, PromICE cannot see program executions when these features are enabled. It is possible to measure progress by periodically writing to unused memory locations during debugging. These writes could then be traced. Other workarounds and techniques are available.

Back to Top


14. What is "code coverage"? What can I use it for?

Code coverage is a 8-bit wide memory scheme that maps to the address range of the target. PromICE with Trace will load data of the user’s choice as each memory location is accessed. This valuable feature is used to ensure that an entire program is tested and also can be used to detect memory leaks or memory accesses out of bounds of program operation

Back to Top


15. How do I see what I traced?

Trace data captured by PromICE can be uploaded to a host without interrupting emulation. It can be viewed through Grammar Engine’s LoadICE software or any file editor software for ASCII or text files. The trace data in a PromICE cannot be viewed directly. It can be uploaded as an entire file or in sections.

Back to Top


16. Can I use code coverage to "profile" my software?

Currently code coverage only indicates whether a line of code is accessed, not how many times or how much time your program spends in a particular routine. Future enhancements to PromICE with Trace may include this feature

Back to Top


17. What is FlashICE?

FlashICE is a flash memory emulator. Like PromICE, it emulates flash memory, but it goes one step further by recognizing and responding to embedded flash command (byte program, sectors erase, etc.) FlashICE currently supports AMD 29F010 and 29F040 flash memories in 32 pin DIP, PLCC and TSOP footprints. In the future, support for a great many more flash devices are planned. Check the FlashICE web site for current product status.

Back to Top


18. Do you still support Romulator/Romemulator/ROMboy?

These are memory emulation products that Grammar Engine made in the past, and are no longer supported. Romulator and Romemulator were predecessors to the PromICE and were discontinued in 1990 with the introduction of the PromICE. ROMboy was a diminutive PromICE that was discontinued in 1995. If you are using these products and encounter problems, we recommend that you replace them with a current version of PromICE. (Sorry, no trade-ins or upgrade offers apply.)

Back to Top


       
     
 
| ProductsCompany | Support |
 
 
| SearchContact | Purchase | PromICE | Sitemap |
 
     
 
 
 
Grammar Engine Inc. Copyright 2001 © All Rights Reserved
 
 
Site Design by Web Junkies