For programming and debugging we can use one of the AVR cheap and simple programmers or the wonderful low cost Atmel AVR Dragon. The Dragon supports all programming modes, including ISP, for the AVR device family.The Dragon allows emulation support (debugWIRE On-chip Debug System) with some recent chips like the ATMEGA88. You can try to buy the AVRDEVKIT1-ND (BUNDLE ATSTK500 + ATAVRDRAGON) from Digikey.
For software development there is the free AVR Studio® 4 tool, a professional Integrated Development Environment (IDE) for writing and debugging AVR® applications in Windows® 9x/NT/2000/XP environments.
And if you like C there is WinAVR, open source software development tools for the Atmel AVR with GNU GCC.
The interesting similar AVR project, the MikroKopter, uses the MEGA8 and WinAVR. Chosing Brushless Regler we can find an initial base for our ESC (Electronic Speed Control). You can download the schematics from Downloads (BL-Regler Anleitung) or from the initial German site.
I have built it and made initial tests with the HEX-files from the MikroKopter site. The motors I used are from old hard drives or laser printers.
Our project, now, has 4 main differences from the MikroKopter BLDC controller: uses MEGA88, uses Assembler, the schematics has a few different details from the MikroKopter project and we use RS232 to control the motor.
The Power Stage is active with "1": setting A+ to "1" (VCC) connects the Battery to phase A, idem for phases B+ and C+; setting A- to "1" (VCC) connects the Ground to phase A, idem for phases B- and C-. So never set a phase with both positive and negative at the same time because it creates a short circuit inside the Power Stage. See the Motor Control Basics page.
This is the block diagram of our ESC. All the hardware that follows these specifications will work with the software I will publish in this site (some hardware details will be documented later).