I started a new project recently and went to get the latest CMSIS packs. I noticed the peripheral include files no longer include bitfields. I noticed several more changes in the header files and felt like it was a step backwards. I found this change happened when going from CMSIS 2.x to CMSIS 3.x. I looked around and googled and found no mention as to the change and wondering why it happened? Note I assume the change happened because bitfields are messed up in the C language. That is when you do a bit field write, you are really doing a read, modify, write for the whole register which can create some strange behaviors if you do not understand this. However I wanted to understand more as to why the change.