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