http://armpit.sourceforge.net/
Unusually, it's written in assembler (GNU) - a heroic effort! The
author has ported it to many low-cost ARM systems using NXP and Atmel
chips. I don't have any of them, so I'll be putting it on an LPC2103
board I got at a Silica ARM seminar, as that should require the fewest
changes.
The code builds without any problems using the GNUARM tools, and I've
managed to get it to build with the Rowley CrossWorks tools; the code
didn't require any changes but I had to do some messing about with the
CrossWorks configurations and needed some help from Rowley support.
Leon