[开发工具] 使用keil5编译stm32,头文件core_cmFunc.h中,是预定义__CC_ARM,还是__GNUC__?

[复制链接]
2447|2
 楼主| dove萝卜 发表于 2016-8-24 09:23 | 显示全部楼层 |阅读模式
在core_cmFunc.h文件中,
#if defined ( __CC_ARM )
...
#elif defined ( __GNUC__ )
...
其中,__disable_irq();是定义在( __GNUC__ )下的,为什么用keil编译时,调用不会出现问题?
有盲区,求指点
123654789 发表于 2016-8-24 09:52 | 显示全部楼层
本帖最后由 123654789 于 2016-8-24 09:55 编辑

#if defined ( __CC_ARM )

#define AAAA 3        ////  如果把这条语句放在这里,并且能编译通过。那么就是预定义   __CC_ARM
  ////   不要下面的   #define AAAA 3   

#elif defined ( __GNUC__ )

#define AAAA 3        ////  如果把这条语句放在这里,并且能编译通过。那么就是预定义   __GNUC__
                               ////   不要上面的   #define AAAA 3   
#endif

void delay( void )
{
unsigned char x;

for(x=AAAA ; x>0 ; x--);

}    ///// 纯粹是个人理解,不知道对不对  



``` 发表于 2016-8-24 09:54 | 显示全部楼层
用Keil的话,预定义是__CC_ARM。
但如果为了移植代码方便,开启过--gnu的编译选项的话,__GNUC__也会同时定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部