I'm working on a simple project and trying to make it work for both STM32CubeIDE and Keil uVision. Building in uVision, in *my* files __CC_ARM is not defined. If I manually define it on the Target1 Options C Compiler form, then I get a million errors says that it is already defined in *other* files. Other files meaning supplied things like
stm32f10x.h(483): warning: In file included from...
I can see that in "core_cm3.h" it is already defined (magically).
I noticed someone doing this:
#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
Try using this as an reference:
In it they use
Also Arm Compiler 6 is based off Clang, and clang defines the GCC flag. See:
c - How to #ifdef by CompilerType ? GCC or VC++ - Stack Overflow
Helpful stuff, thanks. That's better than my solution (the github link).