Home
8051 Development Suite  Development Suite Brochure (Overview)  Development Suite Brochure (Detailed) 

 

8051 Virtual Workshop

 

 

 

The 8051 Virtual Workshop allows you to run your 8051 program without any target hardware. Not only does it simulate the 8051 microcontroller and its variants, it allows you to add your own extensions and so simulate your complete target system.

HIGHLIGHTS

  • Full source level debugging
  • Simulates 8051, 8052 and an increasing number of variants
  • Support for custom extensions allows you to simulate your complete target system
  • Seamless integration with the Embedded Development Studio
  • Dockable windows
  • Multiple watch windows for local and global variables
  • Views of all memory areas, registers and disassembled program.
  • Full simulation and graphic views of 8051/8052 on-chip peripherals
  • State capture to capture and restore the complete internal state of the microcontroller
  • Source code profiling
  • Code and data coverage analysis
  • Multiple cycle counters
  • Operates stand-alone or with the Crossware 8051 C compiler and assembler

Full Source Level Debugging
The IEEE695 records generated by the Crossware C compiler and assembler contain full debugging information. These debug records are used by the Simulator to provide comprehensive source level debugging. You can single step and trace through your C source code files, you can single step and trace through your assembler source code files and you can set breakpoints at the source code level to control the execution of the Simulator. Alternatively, if your program does not contain any debugging information or if you want to step through your C source at the assembly level, the disassembly window supports your needs.

Variants Supported
The software fully simulates the 8051 and 8052 microcontrollers, the 8051 and 8052 microcontrollers, the Dallas DS5000, the multiple dptr's of the Atmel, Philips and Dallas chips and the multiple dptr's and arithmetic unit of the siemens 80C517. Support for additional variants are under development.

System Level Simulation

You can simulate the rest of your target system by adding your own extensions. An extension can be as simple or as complex as you like. If you want to use the Microsoft Foundation Classes, we can provide a Wizard that will create an outline extension for you. Just a few lines of code is then all you need to add to toggle a port pin, or you can create a much more sophisticated extension by adding your own dialog boxes, graphics views etc, accessible via custom menu items. The Virtual Workshop supports multiple extensions and so you can modularise your enhancements by providing for example one extension to simulate an encoder, another to simulate a stepper motor, another to simulate a display and so on.

Seamless Integration with the Embedded Development Studio
The Embedded Development Studio forms an integrated environment that binds together the various Crossware tools. It automatically detects the presence of the Simulator and loads it to create a single unified application. The text windows that you see as you single step through your program are exactly the same as those you use to create and edit your source code. If you set a breakpoint as you edit your code, this is where execution will stop when you instruct the Simulator to Go.

When the Virtual Workshop is used 'stand-alone', the Embedded Development Studio provides a customisable interface to your tool set. You can therefore edit and keep your project up-to-date using all of the sophisticated features of the Embedded Development Studio using your existing compiler, assembler and linker.

Simulator extensions programmed in Microsoft Visual C++ using the Microsoft Foundation Classes will also integrate seamlessley with the Embedded Development Studio.

Multiple Watch Windows for Local and Global Variables
You can open up to five watch windows to display the values of your C variables. One of these watch windows will automatically display local variables and be automatically updated as variables move in and out of scope. The other four can display global and local variables of your choice. You can freeze the contents of a watch window to prevent it from being updated by the simulator. This feature allows you to compare historic and current values of your variables.

Views of Registers and Memory Areas
You can open multiple views on all memory areas including internal data memory, external data memory, sfr memory and code memory. You can set breakpoint in these windows to halt execution when a memory location is read or written. You can open a register view to display the 8051/8052 named registers. Memory and register locations can be directly edited in these windows in either hexadecimal or Ascii format.

Full Simulation and Graphic Views of 8051/8052 On-Chip Peripherals
The simulator provides cycle-accurate simulation of the 8051/8052 timer-counters, serial port, interrupts and port i/o. You can open views to display all of these peripherals and events.

The interrupt view shows you which interrupts are enabled, how the interrupts priority mask and flags are set and which interrupts are active and at what priorilevel.

The serial port view shows you what mode the serial port is set to, which timers are being used to drive it and whether or not clock doubling and interrupts are enabled. Bar indicators display the progress of the transmit and receive buffers as the data shifts in and out. You can see what byte is being transmitted and you can see the last byte received and whether or not it has been read by your program.

The timer view shows the activity of all the 8051/8052 timer-counters. Bar indicators display progress, and the mode in which each timer is running is displayed.

The port views (one for each port) show the masked input, the unmasked input and the status of the latch. Input data for a port can be stored in a binary file and read as your program executes.

State Capture


The state capture facility allows you to store the complete internal state of the simulated microcontroller. You can capture the internal state any number of times and select and view them at a later stage. When you select and view a captured state, all of the memory views are updated to show the captured state. You can fully restore a captured state. Then, when you next run the simulator it will start with all conditions, memory, cycle counters, program counter, etc restored to the values current at the moment you captured the state. You can use this feature to repeatedly run a small segment of your code.

Even the states of your simulator extensions will be restored if you follow our programming guidelines.

Source Code Profiling
As the simulator runs your program, it can optionally capture information about the execution history. It can use this information to produce an execution profile of your source code. This will tell you how much time your program spent executing in the different parts of your code. The profile results are listed in a text window, sorted in accordance with your selected criteria. A double click on a listed item will take you to the relevant line of your source code.

Code and Data Coverage
The information captured during execution can also be used to provide a coverage analysis. Code coverage will show you which parts of your code have been executed and which have not. Data coverage will show you which internal and external data memory locations have been accessed during execution.

Multiple Cycle Counters
The status line contains three cycle counters. One of these displays the number of cycles executed since the start of the program, another displays the number cycles executed since the last command was issued (such as Step, Trace or Go). The third is a trip counter and displays the number of cycles executed since you last reset it to zero.

Memory
The simulator supports up to 64k of program memory, 64k of external ram, 256 bytes of internal ram and 128 bytes of SFR memory. A memory configuration option allows values suitable to your target system to be specified allowing access outside of your maximum to generate an error.

Program File Formats
The file formats supported for the 8051 program code are Intel hex, OMF51, IEEE695 and Binary.