[<<] [<] Page 1 of 1 [>] [>>] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Another PIC simulator you might be interested in
From: Bill Couture ####@####.#### Date: 22 Dec 2002 22:24:05 -0000 Message-Id: <Pine.WNT.4.10.10212221712020.-186581@junkvalue.speakeasy.net> Hi! I originally posted this to PICLIST, and Scott Dattalo though the people on this list might also be interested. I started using PICs at work about a year and a half ago, and quickly discovered that MPLAB's simulator just wasn't good enough (too slow, no support for UART's etc). So, being the computer geek I am, I wrote my own PIC simulators -- a 12-bit core and a 14-bit core, currently implemented as a 12C509A, a 16F84A, a 16F628, and a 16F877 (each in a separate program). The programs include support for hardware UARTS (628, 877), software (bit-bang) UARTS (all), I2C EEPROM (bit-bang, all), toggle I/O pins via keypress, visual state of I/O pins, oscilloscope functions, execution history, stimulus files, ADC result files (877), breakpoint on program address, breakpoint on RAM address, and more. They are fast, with a PIII-600 doing about 5MIPS simulating a 12C509A, down to about 3MIPS simulating a 16F877. There are some minor limitations, the analog comparitors of the 628 have not been implemented, and the MSSP and PSP of the 877 have not been implemented. In addition, I've also written a disassembler for PICs, currently targeted at the 12C509A, 16F84A, 16F628, and 16F877. PICDIS based on PICEMU, and uses the 12-bit and 14-bit cores to track program execution and determine the actual location (RAM bank, program bank) that an instruction references. This makes it much easier to determine which SFR's are being used, differentiate between variables at the same offset in different banks, and generate correct labels for CALL's, GOTO's and instructions that modify PCL. They are written as DOS programs, in C with some inline assembly, and are open source. You can download executables, source, and compiler at www.picemulator.com And, let me answer some of the "usual" questions: * Why not just use GNUPIC? 1) I had been writing PICEMU for a month before I found out about GNUPIC. 2) I don't use Linux either at work or at home. 3) I wouldn't be learning about PICs if I didn't write my own program. * Why not add to GNUPIC instead of re-inventing everything? 1) I'm not a C++ programmer. 2) I'm not a Linux programmer. * Why is this a DOS program instead of a Windows program? 1) I'm not a Windows programmer. 2) I didn't think that PICEMU would wind up being anything like the program it is, so I started writing it "quick and dirty" using the C compiler I've been using since 1985. Please feel free to make comments, suggestions, and derisive remarks. :) Bill | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Re: Another PIC simulator you might be interested in
From: Scott Dattalo ####@####.#### Date: 23 Dec 2002 05:10:33 -0000 Message-Id: <Pine.LNX.4.44.0212222100140.24718-100000@ruckus.brouhaha.com> On Sun, 22 Dec 2002, Bill Couture wrote: > Hi! > > I originally posted this to PICLIST, and Scott Dattalo though the people > on this list might also be interested. > > I started using PICs at work about a year and a half ago, and quickly > discovered that MPLAB's simulator just wasn't good enough (too slow, > no support for UART's etc). Sounds familiar! > > So, being the computer geek I am, I wrote my own PIC simulators -- > a 12-bit core and a 14-bit core, currently implemented as a 12C509A, > a 16F84A, a 16F628, and a 16F877 (each in a separate program). <snip> Sounds great. I've added a link to http://www.gnupic.org/ > And, let me answer some of the "usual" questions: <snip> > Please feel free to make comments, suggestions, and derisive remarks. :) No derisive remarks here! Scott | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[<<] [<] Page 1 of 1 [>] [>>] |