Supported Third Party Compilers
In order to simulate firmware inside Proteus all you need to do is specify the program file and clock frequencies as properties of the microcontroller part on the schematic.
All Proteus VSM processor models are able to run binary files (i.e. Intel or Motorola Hex files) produced by any assembler or compiler. It follows then that there is no limitation in your tool choice when working with Proteus VSM simulation. However, if you do use a binary file the debugging facilities available are very limited since the processor model has no way to correlate the machine code it is executing with your original source program.
Fortunately, most compilers also produce symbolic debug data files that contain extra information to be used by debuggers and other tools. The Proteus VSM processor models are able to load the debug data files produced by these compilers which enables us to provide full high-level language debugging facilities including the ability to display and step through the original source code as well as display the contents of program variables as the code executes.
VSM Studio IDE
The VSM Studio IDE fully integrated into the Proteus Design Suite and is provided as standard with all professional purchases. Learn more about VSM Studio
In addition to normal functionality VSM Studio is capable of detecting and configuring all the (supported) compilers you have installed for use with Proteus. It will even manage the download and install of free compilers for you.
Working through VSM Studio will guarantee full debugging capabilities (single stepping, variables display, etc.) inside the Proteus VSM simulator and will remove all manual configuration problems.
Other Compilers
It may be that your compiler of choice is not supported by VSM Studio or you may prefer to write your code in your own tool suite. Proteus VSM supports the vast majority of tools on the market, allowing single step debugging of both high and low level instructions.
If using a tool suite other than VSM Studio you will need to:
Manually configure your compiler to produce a Proteus compatible debug output file.
Specify that output file as the Program property
If you are not working with VSM Studio the following sections outline the debug files types used for the various microcontroller families supported in Proteus.
PIC® Microcontrollers
- If you are using a C compiler specify the COF file output by your compiler as the program property of the PIC schematic part.
- If you are using the Proton BASIC compiler specify the BAS file as the program property of the PIC schematic part.
- If you are writing in Assembly language either use VSM Studio or apply a linker script to generate a COF file.
8051 Microcontrollers
- If you are using the free SDCC compiler specify the CDB file as the program property of the schematic part.
- If you are using the Keil compiler specify the OMF51 file as the program property of the schematic part.
- If you are using the IAR compiler specify the UBROF file as the program property of the schematic part.
- If you are writing in assembly language then use VSM Studio to generate debuggable source code.
ARM® Cortex™-M4, Cortex™-M3 & Cortex™-M0
Regardless of compiler choice you should specify the ELF file as the program property of the schematic part. Make sure the corresponding DWARF file is in the same directory as the ELF file.
Atmel AVR® Microcontrollers
- If possible configure your compiler to output ELF/DWARF and use the file as the program property of the schematic part.
- If your compiler does not output ELF/DWARF then the COFF file format is also supported.
- If you are using the BASCOM AVR tool, select Options-Compiler-Output in the Bascom-AVR menu, then set the 'Binary file', 'Debug file', 'Report file' and 'AVR Studio Object file' checkboxes. After compilation, use the corresponding .OBJ file as the program property in Proteus.
- If you are writing in assembly then use VSM Studio to generate debuggable source code.
MSP430™ and PICCOLO™ Microcontrollers
- For MSP430, use Code Composer to produce a COFF/DWARF output file set and then specify the COFF file as the program property.
- For PICCOLO, use Code Composer along with the Control Suite software to produce a COFF/DWARF output file set and then specify the COFF file as the program property.
Note that Installation of Code Composer alongside Control Suite is not always straight forward - refer to the PICCOLO help file in Proteus for a full procedure.