I am working on STM32l151rct6a by stm, I have stumbled upon these MACRO definitions
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
Does anyone know what they mean?
I am working on STM32l151rct6a by stm, I have stumbled upon these MACRO definitions
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
Does anyone know what they mean?
These are different compilers for ARM processors, probably these macros are used to hide compiler-dependent stuff in code that's compilable by several compilers.
ICCARM
--> IAR (there will also be a macro __IAR_SYSTEMS_ICC__
that is set to the compiler platform version__IMAGECRAFT__
--> Imagecraft C (also see Clifford's comments below - there's also a macro __ICC_VERSION__
, see the pdf documentation)TASKING
--> Tasking__CC_ARM
--> ARM's (RealView) compiler (link broken)__GNUC__
--> gccThey are macros for identifying the compiler being used to build the code.
A list of such macros, and others for identifying architecture and OS etc. can be found at http://sourceforge.net/p/predef/wiki/Home/. It does not however comprehensively cover many compilers from smaller embedded systems vendors (Tasking and Imagecraft for example).
These are compiler specific MACROS and defined in compiler code.For example __ICC is for IAR and __GNU is for GNU compilers.There are some code given in BSP part for STM platform which have dependency on compilers.