打印
[开发工具]

使用keil5编译stm32,头文件core_cmFunc.h中,是预定义__CC_ARM,还是__GNUC__?

[复制链接]
1795|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

粉丝