We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.
Thanks I realize this, maybe formed the words incorrectly in my post. However my question what why the change in the CMSIS? I personally had to go back to CMSIS 2.x. The bit field change I understand but many other features and #defines were remove in CMSIS 3.x.
For example the CMSIS 2.x had things for my processor like the following which appeared to be removed in 3.x
Again I am not looking to fix the problem but rather understand the reason for the change.