I've been learning STM32F1 using the eval Keil MDK and though I'm a confused newbie at ARM/STM32 it's been going OK. This Monday morning my project would no longer compile and there were lots of errors and messages about __nop(); and __disable_irq();
I think it might be because of an update I did, though I can't recall specifically what update I performed (I know, I'm an idiot ... Friday afternoons should never be the time to update anything!). It appears the errors come about because of missing header files under system_stm32f10x.c/stm32f10x.h. It took me a long time to figure out how to "correct" for the error and I had to change:
Select Software Packs -> deselect Use Latest version and then manually select 5.7.0 instead of 5.8.0.
Can someone explain to me what's going on? Is there something else I'm doing wrong? Should I try and remove/reinstall 5.8.0?
See https://github.com/ARM-software/CMSIS_5/issues/1211
For Cert reasons, includes to arm_compat.h was removed.
if one needs to include arm_compat.h one needs to assure its included before including any CMSIS header.
arm_compat.h
Does adding arm_compat.h solve anything?
Yes it does thanks.
It compiles OK. I need to test it though because I have some code that utilizes the result of __disable_irq(). I noticed in my searches that (I think) there was a version of __disable_irq() that did not return the current status before disable. This is all a little over my head though.