check the source code for arduino
it's already like this in part...
Agreed.
the wiring.h declares the functions that are part of the standard arduino library then the implementation has a series of ifdef depending on the actual processor used
I've seen that, but I do think that it is a lot of work if one wants to add a processor. Maybe if the implementation themselves is written in separate .h files, that would help a bit I think.
#if defined(__AVR_ATmega168__)
#include "ATmega168.h"
#endif
I think the use of interface / implementation can lead to cleaner code, easier maintenance, easier expanding / adding new processors. (even non Atmel).
[not critizising, just thinking out loud]
If a interface was used, all microprocessors with a c++ compiler could be used as an 'arduino'. [kind of anyway]
@Massimo:
Do you think this is a waste of time and energy, pursuing a hierarchial arduino system/structure?
I imagine the arduino functionset could be beneficial to both the beginner and the expert.
I myself would love to be able to utilize some of the ATtiny processors at one side of the Atmel AVRs and the XMega at the other.
The 168 was an excellent choise for an allrounder, but there is often situations where you need moremoremore, and oftentimes you only need 5 I/O and a little programspace for a short code.