Re: Compilers for Microchip PIC16C5x

Fri, 5 Feb 1993 01:25:00 GMT

          From comp.compilers

Related articles
Compilers for Microchip PIC16C5x nzkite!foster@gvls1.VFL.Paramax.COM (1993-01-29)
Re: Compilers for Microchip PIC16C5x AMN@VMS.BRIGHTON.AC.UK (Anthony Naggs) (1993-02-05)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Anthony Naggs <AMN@VMS.BRIGHTON.AC.UK>
Keywords: tools
Organization: Compilers Central
References: 93-02-015
Date: Fri, 5 Feb 1993 01:25:00 GMT

Foster Schucker, <foster@nzkite.uucp>, writes:
> I'm looking for a compiler for the PIC 16C5x series of microprocessors.
> I'd prefer C or Pascal, hosted on MS-DOS but beggars can't be choosers.

I was interested in this last September, so I contacted Arizona Microchip
in the UK. They directed me to a company, (only five miles up the road
from me!), who are UK agents for:

        CC5X Small C Cross Compiler for the Microchip PIC16C5x Family

        From: B. Knudsen Data Fax: +47 7 94 25 90
                    Stubbanv. 33B
                    7037 Trondheim

Well, I managed to find the information sheet, but I have mislaid the demo
disk & pricing details.

I considered the 'Small C' to be too small and expensive, also (IMHO) the
code generator seemed to be rather poor.

The [Arizona] Microchip distributor in your area should be upto date on
the available tools.

> The Microchip PIC 16C5x series of microprocessors is a small (18-28 pin)
> chip with 33 instructions, a 12 bit word, with 2K of EPROM. ...

They are very neat, I have used them in several projects. Also parts
introduced around last October include E^2 data retention and on-chip
ADCs. Motorola apparently introduced their 'insect' series of small
microcontrollers to compete about six months ago, but I don't have their
literature to compare architectures.

Why am I posting straight to comp.compilers?

I have been playing with my own version of the assembler, as Microchip
charge for their development tools. I have added features found in other
assemblers, such as include files, linking of intermediate object modules,
... but this is still somewhat short of my ideal.

Having seen the other C compilers' efforts I would like to write my own,
but the very restricted architecture looks like making efficient
optimisation difficult. So my first question, is there any literature on
optimising for strange architectures, (PICs have one register used for all
data transfers, several -bytes- of RAM, no stack space for data) ?

My second is related, what is a reasonable subset of C to support for such
a small processor?

I have also found that most people wanting to use PICs are electronics
engineers or hobbyists with little or no programming experience. So they
would like a simple language that is easy to learn (an hour or two for
basic use, :-), clear to read, with support for both tight and loose
coupling to the hardware features. Before I write a compiler for my own
language, I thought I should ask here for suggestions!

(As a guide: lack of a hardware stack rules out Forth and other threaded
languages, C & Pascal have too much syntax to learn).

Tempting fate, I anticipate that I would like to partition programs so
that they are spread between co-operating PIC processors. So a 'small'
OCCAM might be a good base, allowing simple addition of the parallel
processing syntax at a later date. Anybody have useful experience in
porting OCCAM?

As usual, if you email suggestions to me I'll summarise in a week or two.
Or you can just write and chat about PIC processors!

Hope this is of interest,
Anthony Naggs
Software/Electronics Engineer P O Box 1080, Peacehaven
                                                                                                East Sussex BN10 8PZ
Phone: +44 273 589701 Great Britain
Email: (c/o Univ of Brighton) or

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.