在原代码中见到__disable_irq(),看起来像是一个函数,更像一个宏定义。
可以,到底是在哪里定义的呢?
编译能通过,编译后用KEIL的“Go To Difinition”的方法,也找不到。
查找该文件的头文件,系统相关的头文件只有:
#include "LPC177x_8x.h"
在该文件中也没有搜到“__disable_irq”
但找到以下行,说明它又包含了别的头文件:
#include "core_cm3.h"
这个头文件里也没有找到定义。
进一步查找,它又包含了新的头文件:
#include "core_cmFunc.h"
终于现身了:
__attribute__( ( always_inline ) ) static __INLINE void __enable_irq(void)
{
__ASM volatile ("cpsie i");
}