ColdFire vs. PIC32 Experiences

As I started working with PIC32, in addition to ColdFire, I decided that the only things that could possibly be more different than the two processors themselves were the associated peripherals, development environments, and documentation!!!  Each has their strengths, but their differences seemed so polarized to me that it was worth recording.  These are only my opinions, and I'm sure folks will differ with them.

Category Description ColdFire PIC32
CPU Performance For starters, the PIC32 is fast -- almost 15% faster clock-for-clock than the ColdFire V2 cores I am using.  PIC32 code is significantly smaller than ColdFire code, as well.  
MCU Peripherals The ColdFire V2 peripherals (for example, analog to digital converters, timers, etc.) are quite simply outstanding.  They all seem like they were designed in this decade, and have a minimal number of warts or use restrictions.  The PIC32 peripherals, on the other hand, just seem old (maybe on par with the ColdFire V1 peripherals?) -- PIC32 UARTs have data and parity bit restrictions, the 5 PIC32 Output Compare modules are coupled to 2 Timer modules and so cannot work independently, etc.  
Development Environments CodeWarrior 7 (for ColdFire V2) is awesome!  It has more functionality and a more natural UI than MPLAB 8 (for PIC32), and quite simply, less bugs.  With that said, the underlying compilers of MPLAB seem potentially a bit better, generating better code.  (If I wasn't using a GUI, this might tip in MPLAB's favor).  
Header Files The ColdFire V2 header files seem like they are actually meant to be read -- very well organized so it is faster for me to browse them than open the reference manual for most things I want to do.  The ColdFire V2 header files also intentionally allow programmatic access to any one of multiple of the same kind of peripherals (i.e., PERIPHERAL_REGISTER(n)) -- something neither the PIC32 nor ColdFire V1 headers do.  
Standard Libraries The PIC32 standard libraries are great, even if you don't use them, because they give you a concise (documented and working) example of how to manipulate a peripheral and expose its functionality to C!  (The new Freescale MQX might even this up -- I have not used it yet.)  
Advanced Libraries My biggest surprise was that the advanced libraries for the PIC32 (USB, Ethernet, etc.) seemed much better than I have come to expect -- and if I had written my code first for PIC32, I might have actually used their USB driver rather than learn USB and write my own!  (The new Freescale MQX might even this up -- I have not used it yet.)  
Documentation Freescale definitely has the best documentation I have found for Microcontrollers and Microcontroller Peripherals.  By the time I am done reading thru a section, just front to back, I feel like I can program the peripheral.  And once I'm past that, the Table of Contents allows me to get right to the section I am looking for -- each peripheral register and each important section is listed there, so I'm never scrolling to find a table I know I saw once before...  

Back to Rich's ColdFire Hobby Page!