Programming AVR micro-controllers
This document is intended to collect tips on programming AVR micro-controllers, such as Atmel's ATMEGA328P.
Developing programs
Lady Ada writes a tutorial for learning to program AVR micro-controllers, including setting up a CLI-based environment with gcc. [1]
Uploading programs
There are many ways to upload programs onto chips.
Arduino as ISP
The Arduino community provides a simple way to use an existing Arduino to program a new AVR chip, at least to burn an Arduino bootloader onto it. An AVR on a breadboard, optionally with a crystal oscillator, is connected by four wires to an Arduino, which takes the program from the computer and programs it onto the AVR.[2]
Arduino forums user Lauszus wrote a lengthy tutorial on using ArduinoISP to program AVRs in general: http://forum.arduino.cc/index.php?topic=65099.0;wap2