HTTP/1.1 200 OK Date: Sat, 18 Aug 2001 00:08:21 GMT Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.0.4pl1 mod_perl/1.24_01 Last-Modified: Fri, 15 Jun 2001 14:28:40 GMT ETag: "aa80c-2ebf-3b2a1b98" Accept-Ranges: bytes Content-Length: 11967 Connection: close Content-Type: text/html gpsim

gpsim

What

Screen Shots

Requirements

Download

CVS

Install

Processors

Documentation

Modules

Links

gpsim

gpsim is a full-featured software simulator for Microchip PIC microcontrollers distributed under the GNU General Public License

gpsim has been designed to be as accurate as possible. Accuracy includes the entire PIC - from the core to the I/O pins and including ALL of the internal peripherals. Thus it's possible to create stimuli and tie them to the I/O pins and test the PIC the same PIC the same way you would in the real world.

gpsim has been designed to be as fast as possible. Real time simulation speeds of 20Mhz pics are possible. ( A 'goto $' program runs at the same speed as a 25Mhz pic when simulated on my 400Mhz PII Linux Box. Of course, as you add stimuli and begin interacting with peripherals, the performance drops. But it's still fast!)

gpsim has been designed to be as useful as possible. (At least that's the intent - honest.) The standard simulation paradigm including breakpoints, single stepping, disassembling, memory inspect & change, and so on has been implemented. In addition, gpsim supports many debugging features that are only available with in-circuit emulators. For example, a continuous trace buffer tracks every action of the simulator (whether you want it or not). Also, it's possible to set read and write break points on values (e.g. break if a specific value is read from or written to a register).

gpsim is not^B^B^B fancy, but^B^B^Band it's improving. It supports a good ol' fashioned CLI like gdb and a gui based on gtk.

Screen Shots

Control Menu

register viewer

object code browser

.asm source browser

Watch viewer

Bread board viewer.

Desktop1 and Desktop2 in tiff format (for MP). Shows many of the gpsim windows on my desktop.

You may wish to also check out Andy Burgess' java wrapper. However, it's getting to be a little outdated now.

System Requirements

Linux.

gpsim and gpasm are primarily for unix [especially Linux]. I've heard of one instance of gpsim being compiled under windows. However, I'd recommend MPLAB or UMPS if you want windows support. Actually, if the truth should be known, I'd recommend installing Linux.

Downloading

Tarballs

Latest version is gpsim-0.20.0 .

Latest development version is gpsim-0.20.9

eXdbm-0.1.0b2.tar.gz

gtk+extra-0.99.9.tar.gz

If you want you can go to the gtk+extra homepage and get the latest version of gtk+extra. However, you're going to have to use the eXdbm package I provide. The one on the eXode Database Manager Home page does not install properly.

Don't forget the latest version of the gnupic assembler gpasm-0.8.9.tar.gz .

RPM's

A few people have had some problems building and installing gpsim, so I decided to create rpm's. Download the following three RPM's and install them by rpm -i rpmname.rpm

eXdbm-0.1.0b2-0.i386.rpm

gtk+extra-0.99.9-0.i386.rpm

gpsim-0.20.1-0.i386.rpm

Downloading Source RPM's

Here are the .src rpm's that accompany the binary rpm's above. You don't need these to either install or run gpsim. They're useful if you want to tinker with the code and don't feel like messing with the .tar.gz's.

eXdbm-0.1.0b2-0.src.rpm

gtk+extra-0.99.9-0.src.rpm

gpsim-0.20.1-0.src.rpm

Downloading the bleeding edge from CVS

The gpsim source is on the gpsim SourceForge page. From there you may browse the CVS and check out the very latest versions. The instructions for getting gpsim from CVS provide a step-by-step description on how you can get the code.

Installing

Down load the gpsim tar ball and type

tar -xvzf gpsim-0.x.y.tar.gz

Where 'x.y' is the version number. This will create a subdirectory called gpsim-0.x.y . All of gpsim's source code will be untarred to here. From there, you can read the README and INSTALL files for more info. But they basically tell you to

cd gpsim-0.x.y

./configure This will create the Makefile

make <--- This will create the executable

su root if you have root privileges

make install places a copy of the executable in /usr/local/bin

Oh, don't forget to check the gpsim-0.x.y/examples subdirectory for some example asm and stimulus files...

Supported Processors

PIC12C508 PIC12C509
PIC16C84 PIC16CR83
PIC16F83 PIC16CR84
PIC16F84 PIC16F877*
PIC16C61 PIC16C62
PIC16C63 PIC16C64*
PIC16C65*
PIC16C71 PIC16C72*
PIC16C73* PIC16C74*
PIC18Cxxx*

* Not fully supported (yet).

Documentation

Here's the beginning of gpsim.ps and gpsim.pdf, the gpsim documentation.

Or if you perfer, here's the Lyx source gpsim.lyx.

Modules

gpsim supports loadable modules. This means that it'll now be possible to add devices to gpsim that are in fact totally separate from gpsim. They'll reside in their own libraries, be distributed in their own tar balls, and (hopefully) written by others besides Ralf or myself. The goal, of course, is to provide the simulation infrastructure for use^rs to easily construct a custom simulation environment. As it presently stands, gpsim is somewhat analogous to MPLAB in that it is confined to simulating just pic microcontrollers. With modules, gpsim will take on some of the functionality provided in UMPS.

led-0.0.3.tar.gz is a working example of a 7-segment led module. This is the very first one and is still somewhat experimental. It works with gpsim-0.20.0 and (probably) greater. Here's a screen shot of the 7-segment display in action.

logic-0.0.2.tar.gz is an even simpler module library that contains a 2-input AND gate and a 2-input OR gate. There are no graphics to show. This library also illustrates how a module can drive a pin on the pic.

lcd-0.1.1.tar.gz is a sophisticated module library that implements a 2X20 lcd display. Sample screen shots can be found on lcd.html

Related Links

gpasm - The GNUPIC assembler that is compatible with MPASM.

Byte Craft is the creator of the .cod symbol file format.

The gnupic webpage has links to other pic tools. Paul Vollebregt has another gnupic webpage with links to tools for other microcontrollers as well.


This page is maintained by Scott Dattalo. You can reach me at home: scott@dattalo.com
Last modified on 02MAY01.