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).
Ideas??
I noticed someone doing this:
#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
And now I see that __GNUC__ is defined in the Keil eval version. Is this normal?
IDE-Version: µVision V5.34.0.0 Copyright (C) 2021 ARM Ltd and ARM Germany GmbH. All rights reserved. Tool Version Numbers: Toolchain: MDK-Lite Version: 5.34.0.0 Toolchain Path: C:\Keil_v5_MDK\ARM\ARMCLANG\Bin C Compiler: ArmClang.exe V6.16 Assembler: Armasm.exe V6.16 Linker/Locator: ArmLink.exe V6.16 Library Manager: ArmAr.exe V6.16 Hex Converter: FromElf.exe V6.16 CPU DLL: SARMCM3.DLL V5.34.0.0 Dialog DLL: TCM.DLL V1.48.0.0 Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.8.0 Dialog DLL: TCM.DLL V1.48.0.0
Code generation is set to "use default compiler version 6"
If I set Code Generation to "use default compiler version 5", then both of those are resolved (__GNUC_ is now undefined and __CC_ARM is defined), but that introduces a whole raft of other things that need to be downgraded in my code (for lack of a better word).