注册 登录
查看: 419|回复: 4

【求助】__ICCARM__和__CC_ARM 这两个宏定义是干什么用的?

[复制链接]
发表于 2014-4-4 22:34:36 | 显示全部楼层 |阅读模式
#if  (defined(__ICCARM__) || defined(__CC_ARM))
    uint8 tmp = __get_BASEPRI();        //__get_BASEPRI 是 IAR 自带 intrinsics.h 里定义 ,用于获取 中断状态(MDK也支持)
    //用于返回寄存器 PRIMASK 的值(1bit)
    //1表示关中断,0表示开中断
#else
    uint8 tmp = 0;                      //默认表示开中断
#endif


上面的红色字体, 右键也没有查出来、 为什么如果定义的话就要读一下当前总中断的状态? 谢谢了

回复

使用道具 举报

发表于 2014-4-4 23:57:33 来自手机 | 显示全部楼层
搜索一下,论坛有个帖子的,这个是编译器的宏标识
回复 支持 反对

使用道具 举报

发表于 2014-4-4 23:58:38 来自手机 | 显示全部楼层
这样的处理是为了兼容各种编译器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-6 20:17:18 | 显示全部楼层
仍旧不是很懂, __ICCARM___ ,_CC_ARM应该是之前在哪定义过的(可能在某种编译器下起作用), 既然有定义,肯定就有一定的含义,而且肯定与全局中断有关。   
回复 支持 反对

使用道具 举报

发表于 2014-4-6 20:18:25 | 显示全部楼层
zzuli123 发表于 2014-4-6 20:17
仍旧不是很懂, __ICCARM___ ,_CC_ARM应该是之前在哪定义过的(可能在某种编译器下起作用), 既然有定义, ...

【原创】用宏定义条件编译区分不同编译器 - 智能车资料区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php?mod=viewthread&tid=596
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部