请教:如何判断当前函数是否运行在中断中

2019-12-27 18:53发布

stm32使用keil rtx,由于很多函数不能运行在中断里面,但是由于有很多嵌套调用。搞不清楚一个函数到底是不是到底是运行在中断里面。所以想请教一下是不是有没有方法判断当前运行代码是否在中断里面。
像这样使用

if(in_interrupt())
{
        some isr function // which can run in interrupt
}else
{
        some os api // which can not  run in inerrrupt
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
ronic
2019-12-28 23:52
感谢诸位答复,经过自己研究并搜索网络,我暂时实现了下面的方法。测试还是可以使用的。

        inline  int  in_isr()
//        int  in_isr(void)
        {
                volatile int tmp=0;
               
                __asm
                {
                        MRS tmp,IPSR           ///读取CPSR的值
                       
                }
                return tmp&0x1f;                 
       
        }

一周热门 更多>