wine@maui.cs.ucla.edu (David Wine) (06/22/91)
Here are edited responses to my query about C compilers for the 8051 family of microcontrollers. Thanks to all who took the time to respond. >I know of a few companies which make C compilers for the >8051 family of microcontroller. These are Avocet, Introl, >and Cottage. I also heard of a compiler called Archimedes. >Does anyone have first hand (or even heresay) knowledge of >these or any other C compilers (or other products from these >companies)? Reply to me and I'll compile and repost. > >--David Wine >>> From: Mika R Iisakkila <iisakkil@vipunen.hut.fi> I have used a Swedish 8051 C compiler (IAR C by IAR Systems). The latest version (4) produces excellent code, and you can even program interrupt handlers in C. It supports lots of memory models, including models with banked ROM up to 1MB (may be banked RAM too, don't know for sure). It allows you to put C variables in external RAM. It's fun to look at the assembler listings it produces - you can feel the programmer having put every optimization he knows into the compiler! The linker does a clever 'overlaying' of variables - it builds a call tree of the entire program, and puts all automatic variables (that are not used simultaneously) in the same place. This saves a lot of internal RAM, in case you're trying to manage without any external data storage (automatic variables are not allocated from the stack, as real compilers do, because the stack space is very limited in 51). Sorry that I'm not able to tell you anything about the price or availability of the compiler in the States. The same C-compiler/assembler/linker system is available for a number of other microcontrollers besides the 51. PS. The system works under DOS, naturally. >>> From: hal@cs.unr.edu (Hal Klein) There is a good article in the May '91 issue of Embedded Systems Programming. They mention several: American Automation, Archimedes, Avocet, BOS/Tasking, Franklin, Intermetrics, MCC, and Dunfield. [. . .] >>> From: paulus@anucsd.anu.edu.au (Paul Mackerras) Here in Australia there is a company called Hitech Software Pty. Ltd. which makes C compilers for a whole range of micros including the 8051, 8096, Z80, 6800, 6809 families. I have used their Z80 and 8096 compilers with good success. They give you the source to all the library procedures, which is nice, especially in embedded applications where you often want to do something a bit different for I/O. Send me email if you want their address; their phone number is +61 7 300 5011. >>> From: Steve Culp x45347 <steve@cave.arc.nasa.gov> Organization: Kuiper Airborne Observatory, NASA Ames, California The address and telephone number for the Archimedes C vendor are: Archimedes Software Inc. 2159 Union Street San Francisco, CA 94123 phone: 415-567-4010 or 1-800-338-1453 (outside CA) I have no personal experience with Archimedes products, but I have some old (1988!) promo on it since it was used to develop the software for one of the systems used on the project I work on. The promo says it runs on a PC, and there is also a product called SimCASE which lets you run, debug and test your 8051 C code without any prototype hardware. >>> From: Holt Mebane <holt@sdd.hp.com> Organization: Hewlett Packard, San Diego Division I have been using the compiler from Franklin Software for about 1.5 years. I recently upgraded to their 3.0 "Professional" compiler. I have written 805X code since about 1983, and I must say that their 3.0 compiler is excellent. I base this on their memory usage and execution speed. They are extremely stingy on RAM. They sometimes get dinged for not being TRULY ANSI - but what do you want on an 8051? If you need things like recursion, maybe you should rethink your approach and/or processor choice. If you are running out of internal RAM and ROM, then this compiler would be an excellent choice. I evaluated the Archimedes compiler (about 1.5 years ago), and from a performance point of view, it stunk. One caveat, the people who work at the (small) company are pretty asinine. The president is the worst of the group. Their attitude tends to be "we don't make mistakes - learn to write C". However, if you PROVE a bug to them (I had 2 in their compilers), they fix it and mail you a free upgrade to the latest rev in about 2 days. Not too bad. Good luck. >>> From: apex!chuckh@uunet.uu.net Organization: Apex Computer Co., Redmond WA We have used two different compilers for the 8051. The first we tried was Avocet. It didn't work, and in fact after several calls to "support" we found they had shipped us what they called a beta version. Since it gnerated mostly incorrect code I would have hesitated to call it an alpha release. We are currently using Archimedes with very good results. We have found a few small problems but nothing fatal. Chuck Huffington chuckh@apex.com uunet!apex!chuckh >>> From: "24668, FEIGENBAUM,JOSEF J." <abvax!iccgcc.decnet.ab.com!feigenbaum@uu ***net.UU.NET> [. . .] Franklin makes a neat compiler for the 8051. There is a debugger and some other stuff to make the job easier. They'll even send you a demo disk. [. . .] Joe Feigenbaum Allen-Bradley Tech Support Cleveland, Ohio >>> From: zeke@ccpb.navo.navy.mil (William T. Reckas) I have been using an ARCHIMEDES C cross compiler which runs on Intel processors and compiles code for the Hitatchi 64180/Zilog Z80 chips. An older version I was running was strictly real memory based and consequently a couple of C files I created had to be broken down into smaller files in order to get them to compile. I am currently running Version 3.10 in which they have introduced extended memory support via the DOS/16M protected mode extension system created by Rational Systems Inc. (P.O.Box 480 Natick, Massachusetts 01760) for 80286 and 80386 machines. This seems to work well for me in that I have not encountered any files that could not be compiled after I installed Version 3.10. The documentation states that it can effectively increase the capacity (size of program to be compiled,linked, or debugged) by a factor of ten compared to DOS, if 2-3 Mbytes of extended memory is installed. (As an aside, I just recently installed Desqview 386 and QEMM and have not noticed any errors when running the compiler, but while writing this letter, I think I should call them and check on this DOS/16M interface !) [. . .] The address of ARCHIMEDES Software is : Archimedes Software, Inc. 2159 Union Street San Francisco, CA 94123 Phone #: (415) 567-4010 Fax #: (415) 567-1318 Archimedes sells compilers for the following processors : Motorola 68HC11 Hitatchi/Motorola 6301/6801 Zilog/Hitatchi Z80/Z180/64180 Intel 8051 Prices vary dependent upon the type of hardware you are running. The list prices I have are as follows : IBM PC or clone : $1295.00 HP Unix/SUN III/IV : $2995.00 MicroVax-VMS/UNIX : $3995.00 VAX-VMS/UNIX : $7995.00 If there are specific questions you have about this compiler, please let me know. There was another project that we were thinking of doing which involved the 8051 chip. I don't have information on the compiler we were going to use in front of me, but if it is different from any that you mentioned in your letter, I will let you know. Oh, by the way, the PC version did not come with a "make" utility, so I am using the make utility from Microsoft and we also had to write a simple procedure which converted the output of the compiler from a Motorola format to a binary format we could use to burn our EEPROM's. The compiler allows one to select one of several output formats - the Motorola format was just the one we decided to use. Bill Reckas zeke@spop.navo.navy.mil >>> From: Gary (G.P.) Mussar <MUSSAR@BNR.CA> I'm not sure what you are after but Embedded Systems Programming recented covered a number of 8051 C compilers. Only 2 were under $1000, one was $500 and the other $40. The $40 compiler beat the $500 compiler in all their benchmarks and had a better implementation of C as well. It is available from: Dave Dunfield 56 Burnetts Grove Circle, Nepean, Ont. (Canada) K1J 1N6 (613) 825-0257 >>> From: tom@as.arizona.edu (Thomas J. Trebisky) Organization: University of Arizona, Tucson, AZ I have used the Archimedes 8051 C compiler for over a year with complete satisfaction. Not that I have tried them all, but you will surely be able to get the job done with their compiler. Take a look at May 1991 "Embedded systems programming" where an article reviews 8051 C compilers. They liked archimedes and Franklin best, BSO/Tasking and Avocet were runner ups. An interesting comment -- they said (or he said) "having a floating point library is almost worth the price of the compiler" quite true (if you do floating point), nearly as true of the long math library. >>> From: jvert@microsoft.COM Organization: Microsoft Corp., Redmond WA See if you can get your hands on some back issues of "Circuit Cellar Ink" They had some reviews of 8051 C compilers a few issues back. I don't remember which issue it was. This magazine is run by Steve Ciarcia, who used to have the excellent column in "Byte" magazine a few years ago. If your local library doesn't carry "Circuit Cellar Ink" try looking through some issues of "Byte" for advertisements for this magazine. There is also a BBS devoted to Circuit Cellar Ink, however I do not know the number.