[comp.realtime] 8051 family C compilers

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.