STM32
直播中

张明

7年用户 1030经验值
私信 关注
[问答]

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

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

1. 中断函数
void DMA2_Stream6_IRQHandler(void)
{   
        OS_ERR  err;
        
#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_ERR  err;
        
#if USE_OS == 1
        CPU_SR_ALLOC();

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


   .... .....

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

}

回帖(1)

王坤

2024-4-23 15:37:26
我觉得 应该没有这个规定。
一般来讲,中断回调函数往往是中断服务程序的一部分。
所以,关于这个临界区的保护,到底覆盖多宽范围你自己来定,比如你在做相关回调处理时不关注是否会被OS打断,那该回调处理就放在临界保护区之外。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分