README : summary of the ArtLPC project
Copyright (c) 2005-2007 Garth Zeglin

This file is part of ArtLPC, distributed under the terms of the GNU
General Public License version 2 or later.  The license should be
included in the file COPYING.

/****************************************************************/

ArtLPC is a self-contained set of libraries for writing small
standalone applications for LPC2000-series microcontrollers from
nxp/Philips.  These chips are based on a 32-bit ARM7TDMI core and are
suitable for building a wide range of inexpensive embedded systems.
There are a number of architecture variants with different features
sets on-chip, including FLASH ROM, static RAM, serial ports, timers,
A/D converter, SPI, I^2C, etc.

ArtLPC offers an idiosyncratic API loosely based on features of libc
and the Scheme dialect of Lisp.  As a project it is building toward
offering an embeddable Scheme interpreter.  However, the libraries are
designed to be used independently.  The libraries are written in C,
with minimal dependencies between functions to allow for minimal
memory footprint.  It is written for the GNU gcc C compiler and ld
linker.

It is not an operating system per se, but ArtLPC code linked with a
user program creates an entire memory image suitable for running from
embedded FLASH.  The projects built with it have involved just one
main thread and several interrupt tasks.  For this scale of program,
it avoids the complexity of a scheduler at the price of having to
write in a non-preemptive non-blocking style.  This approach has the
benefit of overall system simplicity.

More details on the project can be found in Documentation/Introduction.

ArtLPC requires GNU make and a GNU GCC C cross-compiler and linker.
Some hints on setting up the gcc C compiler can be found in Documentation/Setting-up-gcc.

A short guide on compiling and testing a program is in Documentation/Quickstart.

Downloading code to the chip requires a downloading tool.  Notes on the
open-source downloader lpc21isp are in Documentation/Setting-up-downloader.

The source code for the CMU balancing robot controller is in Balancer.

