SmallC for AVR

by Ron Kreymborg

SmallC for AVR has been extensively re-written to make it more efficient. Typical code space savings of over 50% on version 1 have been achieved. A complete User Manual is now available that puts in one place the details previously scattered throughout my old web pages. It includes many examples and code snippets on configuring and using the various AVR hardware.


User Manual

The user manual includes a quick start and installation guide, sections on language implementation, code efficiency issues, startup code, monitoring stack usage, the runtime library, and detailed descriptions of the example programs listed below.

Download the SCCAVR User Manual (Revision 3) in PDF format.

Compiler Version 2.4.7

Smallc is now FREE.

For those with a desire to fiddle, I have made the source code for SmallC available as well (see below). I did most of the extra development using DJ Delorie's excellent djgpp MSDOS version of gcc. This included the RHIDE debugger environment which, while clunky, did the job.

Download the full feature version of sccavr

Unzip the compiler into a directory called \sccavr. Unzip the example programs below into directories off this, eg. \sccavr\chase. Further details are in the User Manual.

SCCAVR Source Code

The source code for sccavr is now available for download as well.

Sample Programs

These C programs are available in ZIPped format. Most assume the STK200 as the vehicle although they work just as well on the STK300. They demonstrate many of the features of sccavr, including IO and multi-module program suites. Currently they are:

Simple travelling LED flasher chase.zip
Accessing external ram on a 8515 extram.zip
Port based LCD driver (revised) lcd.zip
Multi-tasking dispatcher multi.zip
Using Interrupts 1 intex1.zip
Using Interrupts 2 intex2.zip

Support Programs

Download the AVR Studio debugger source level debugger (ASTUDIO3.EXE) and IAR assembler/linker/librarian (IAR_ASM.ZIP) from the Atmel site.