no he usado ccs para dspic pero supongo que sera parecido al 8bits, la diferencia entre ccs es que el ccs te hace el todo, mientras que en el C30 tienes que configurar tu todo, vectores de interrupciones, registros...
Para los que quieran las cosas faciles el CCS es su compilador, sin embargo no conseguiran sacarle el 100% de rendimiento al pic, con el C30 eres tu el que manejas al pic desde 0, yo siempre he preferido eso ya que asi tanto a la hora de debuggear, como a la hora de optimizar eres tu el que pone el limite, no el compilador (como en caso del ccs).
El C30 tiene varios niveles de optimizacion, el default la verdad es que crea mucho codigo, sin embargo yo uso el 'S' y optimiza que da gusto, desde el hecho en que si quieres poner a 0 por ejemplo 10 variables, el codigo asm que genera es guardar en un registros el valor '0' y luego asignarselo a cada variable con una unica instruccion.
Aparte, no olvidemos de que podemos configurar cualquier parte del codigo, incluso el acceso a las interrupciones generando codigo rapido __attribute__((interrupt,shadow,no_auto_psv)), con este codigo conseguimos que en unas 5tcy este dentro de funcion de interrupcion, sin embargo en CCS nose si se podra tal cosa.
Yo llevo 1 semana con el C30, y lo afirmo que es complicado, el __attribute__ tiene muchisimas configuraciones, y aprenderselas es dificil, luego como eres tu el que decides en que memoria trabajar, y dspic tiene 4-5 tipos de memoria distintas pues se hace mas complicado aun, sin embargo, con el C18 tambien me paso algo similar al principio, una vez me adapte no fue complicado. Aun asi seguire con el C30 porque una vez lo controle, se que podre aprobechar el 99% del pic, el uso de todas sus memorias, registros... Es decir, con el C30 el proyecto dependera de mi, con CCS yo dependeria del compilador y a mi que me controlen como que no
