Content originally posted in LPCWare by ktownsend on Mon Feb 15 18:38:55 MST 2010
I'm kind of divided on it myself. It's nice to have a standard way to handle the interrupts, etc., but the (to my mind) unusual structs and typedefs kind of annoy me, and GCC throws out a lot of warnings because of them. I ended up making my own LPC134x.h file (even though it took about a week) simply because I'm used to working with definitions on a single 'level' (i.e., not A->B, etc.).
For the moment I've kept CMSIS in my code, but only use it for working with interrupts (I configure the CPU, clocks, etc., myself). I may end up removing it in the future, but ut will take me a bit of time to learn all the ins and outs of the Thumb-2 command set, so I'd rather leave the low-level ASM until the end.
That said ... it's a great idea for people just starting out, since the worst part is usually just getting the chip up for the first time, especially if you're using GCC (Keil etc. provides startup code for you).
Kevin.