westfw:
not the various development boards
Arduino sort-of ties them together, by needing that pins_arduino.h file defining which pins go where for each "board."
You can't write sketches for a chip that doesn't have the (or "an") associated board-level definitions file.
Not only that but there are cases of the different boards using the same processor that use different pin mappings.
Take a look at the Leonardo vs Teensy or the Various "Sanguino" boards.
westfw:
I always thought there should be a set of "chip" board types, where the arduino pin numbers are exactly the pin-numbers on the bare chip itself. But this would add a lot of confusion since ALL the actual "board-level" changes omit the power pins and such.
One positive thing about this would be that the same Arduino pin# would be used of the alternate functions
like serial, spi, i2c, analog input, etc...
Maybe a better question would be which MCUs have Arduino cores written for them?
But even if you get a list of those, it isn't even that simple because not all the cores have full support
for all the core functions & libraries included in the latest Arduino team IDE.
The Arduino team keeps futzing with the APIs and libraries often in non backward compatible ways
so it is difficult for the 3rd parties to keep their code in sync with newer Arduino IDE releases.
For example, The maple ARM core is about the 0018 level but uses its own version of the IDE.
The pic32 cores & libraries are not up to 1.x they are compatible with 0023 but also use their own version of IDE.
There are some tiny cores out there some work with the latest 1.x IDE and some don't.
The Teenyduino core plugin for the Arduino Team IDE is perhaps one of the best in that it supports the latest 1.0.5 but also
has updates to allow much of the older pre 1.x code continue to work.
And then in the big picture very few, if any, of the 3rd party cores or core addons work with
the newer 1.5.x Arduino team IDE.
And even if a MCU has a core that will work on a given IDE, it may lack support for libraries
that come with the Arduino team IDE, either because they don't have the h/w to support
or nobody has spent the effort to get it up and working on that MCU.
In my opinion, one of the biggest problems when trying to use other MCUs,
is that many "Arduino" libraries out there are not in fact Arduino "pure" libraries.
By "pure", I mean a library that only uses Arduino core code calls.
Once a library steps outside of using Arduino core code functions and starts touching h/w, then it is no longer
portable to other MCUs, so it will not work on other MCUs, including those that have Arduino core support.
--- bill