hpdell 发表于 2019-1-15 16:40:29

请教下ucos-III 中断保护放在中断回调函数还是中断里面?

请教下ucos-III 中断保护放在中断回调函数还是中断里面?

1. 中断函数
void DMA2_Stream6_IRQHandler(void)
{   
      OS_ERRerr;
      
#if USE_OS == 1
      CPU_SR_ALLOC();

    CPU_CRITICAL_ENTER();
    OSIntEnter();                                          
    CPU_CRITICAL_EXIT();
#endif




   .... .....

#if USE_OS == 1
      OSIntExit();                           
#endif


}


********************************************************************************************

2. 中断回调函数
static void MP3_DMATxCallback(void)
{   
      OS_ERRerr;
      
#if USE_OS == 1
      CPU_SR_ALLOC();

    CPU_CRITICAL_ENTER();
    OSIntEnter();                                          
    CPU_CRITICAL_EXIT();
#endif


   .... .....

#if USE_OS == 1
      OSIntExit();                           
#endif

}

xmshao 发表于 2019-1-31 10:38:20

我觉得 应该没有这个规定。
一般来讲,中断回调函数往往是中断服务程序的一部分。
所以,关于这个临界区的保护,到底覆盖多宽范围你自己来定,比如你在做相关回调处理时不关注是否会被OS打断,那该回调处理就放在临界保护区之外。
页: [1]
查看完整版本: 请教下ucos-III 中断保护放在中断回调函数还是中断里面?