De hecho, hay cada vez más fabricantes o plataformas para programar ARM's gratuitas, la mayoría de las cuales se suelen basar en el WinARM. Así a bote pronto, aparte de CooCox, me viene a la cabeza Ride con ST, por ejemplo.
Lo que si he visto, es que todos los fabricantes escriben sus propios 'drivers' para sus micros ARM, y los puedes encontrar por ejemplo, en las demos que vienen con IAR, con el CooCox (exactamente los mismos archivos .c y .h), con Ride, con Keil, etc.
Las mayores diferencias entre los diferentes IDE's son básicamente dos: la capacidad del compilador de optimizar (el GCC para ARM es realmente excepcional, casi a la altura del de IAR), cosa que para la estructura interna de loa ARM es fácil y por tanto hay pocas diferencias, y luego está el tema de la depuración.
Lo que más cambia, complica, ayuda, importa y valoro, de los IDE, es la parte de depuración. No tanto la capacidad para soportar sistemas HW de depuración en circuito (ICE, generalmente JTAG y TWD para los ARM), si no el soporte para diferentes cosas. Así pues, por ejemplo, el WinAVR es estupendo para depurar todo lo relacionado con periféricos, gracias a su interfaz gráfico con los mismos. Pero para los mismos AVR, cuando el HW y sus periféricos ya funcionan correctamente, es bastante mejor (a mi entender) el IAR, pues permite hacer trazas, plugins para sistemas operativos, y otros tipos de soporte de depuración del programa propiamente dicho, que hacen más fácil encontrar bugs y problemas relacionados propiamente con la aplicación.
El ejemplo más evidente, es la integración del PowerPAC dentro del IAR. En su versión gratuita, las ventanas de depuración y soporte del RTOS ofrecen el tiempo que ha estado activa cada tarea, el stack que parece ser que ocupan, el estado de las mismas, permite poner condiciones de parada (breakpoints) según los diferentes elementos del sistema operativo, permite ver los parámetros operativos de los diferentes componentes (tareas, pila USB, Fat filesystem, TCP/IP), etc. Cada cosa en su ventana, claro y fácil de leer. En su versión no gratuita, parece ser que aún hay más (trazas, gestión del consumo según tareas, depuración controlada y gestionada según la energía y situación, permitiendo que el micro entre en reposo o se pare sin problemas de depuración, midiendo el consumo, etc).