Definitely the only thing missing from making this an Arduino is loading the Arduino bootloader. But the question is what would that really bring?
The ATMEGA32U4 comes pre-loaded with the DFU bootloader from Atmel. So there's already an easy way to program the thing (this tripped me up at first because I connected my usual programmer to it and it complained that the program lock fuses were set which I thought was strange out of the box). In the end I ended up loading LUFA onto the chip though as with minor code change it allows me to use a single button on the PCB for reset and programming. Tap the button initiates a microcontroller reset, hold it down for 2 seconds drops it into the bootload waiting for a new program.
avr-gcc and avr-cpp already offer a full library for programming and compiling in both languages so the only thing the Arduino system would bring is the associated functions that make Arduino so friendly to the user, but they are bloated to all heck.
For example on an arduino: digitalWrite(1, HIGH); takes 55 clock cycles to complete.
On the other hand in C: PORTD |= (1<<PIN1); or __asm__("sbr portd,1"); both take 2 cycles to complete. There's no arguing though the former is easier to understand for the novice.
|