C Complier for ATMEL Tiny MCU's

ATMEL introduced a new series MCU's not long ago.  Some of them (like ATtiny11/12/15/28, plus AT90S1200) embed the simplified AVR CPU kernel, with the sub set of AVR instruction set. Those MCUs don't have generic RAM.  So programmers can only use 32 generic registers (R0~R31) to store data.  This brings the difficulties for the design of high level language (e.g. C).

This page presents a C compiler (ATCC), as well as the assembler/linker(ATAL),  to support ATMEL's tiny series MCU's that have no RAM facilities.   


  Specs and Features:

[1]. Only support 8-bit data operations. (to do 16-bit operations, you need to make your own sub-routines)

[2]. Support customized data structure 'struct' and pointers.

[3]. Only one-dimension array is allowed. 

[4]. Only lower 256 bytes of program space is allowed to hold 'constant' data. (linker will automatically locate all the constant data in this lower area)

[5]. User can specify the interrupt service routines using vector addresses.

[6]. Support all of 8-bit arithmetic and logic operations ('+', '-', '*', '/', '%', '&', '|', '^', ...) and all C control structures.


Free/Trial version downloading:

NOTE: the free/trial version is full functional, except (1) the output is not optimized; (2) not include multiplication and division subroutines.

version 0.12: fix problems in 'switch' statement; support conditional expressions.