硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2008|回复: 3
收起左侧

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

[复制链接]

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
发表于 2019-1-16 14:34:06 | 显示全部楼层 |阅读模式
请教下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 DMA2_Stream6_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

}


3. 上述2种方法,都使用 hal 的库,哪个方法最为稳妥啊 ??




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2019-1-16 14:40:42 | 显示全部楼层
要放在开头和结尾,即第1种

举个简单的例子,HAL中断里面有很多回调函数的,如果都要加岂不是每个回调都加一个,很麻烦。
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2019-1-16 14:43:45 | 显示全部楼层
eric2013 发表于 2019-1-16 14:40
要放在开头和结尾,即第1种

举个简单的例子,HAL中断里面有很多回调函数的,如果都要加岂不是每个回调都 ...

如果排除麻烦的因素话,

根据可靠性的来定义的话,是 回调函数 里面 好 还是 中断里面好哇 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2019-1-16 14:53:44 | 显示全部楼层
hpdell 发表于 2019-1-16 14:43
如果排除麻烦的因素话,

根据可靠性的来定义的话,是 回调函数 里面 好 还是 中断里面好哇 ?

都可以。

uCOS-III的这种是为了实现中断多级嵌套和退出中断时,没有中断嵌套,即最后一级中断的情况下根据需要才执行任务切换。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 09:12 , Processed in 0.189453 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表