zerone 发表于 2016-2-20 11:18:42

ucos在中断中有 OSIntEnter(), OSIntExit()这两个函数,freertos有相应的函数吗?

如题

eric2013 发表于 2016-2-20 11:31:23

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

对于M3/M4内核中断嵌套已经做的很好了。在FreeRTOS中没有调用其API,什么都不用加。其实uCOS也可以这样做的,但是为了所有代码的统一,加上为好。

zerone 发表于 2016-2-20 13:21:52

明白了

ice845930 发表于 2019-6-28 16:14:30

eric2013 发表于 2016-2-20 11:31
不需要,ucos的这种是为了实现中断多级嵌套和退出中断时,没有中断嵌套,即最后一级中断的情况下根据需要才 ...

在FreeRTOS中没有调用其API,什么都不用加。其实uCOS也可以这样做的

对于这个问题,以前在407做的一个项目,USB挂载U盘,会出现跑飞的情况,后面发现,中断函数没有加OSIntEnter ,加上去之后就好了。。。

现在看到你这回答,我都担心我的代码还有问题了

shibinjie 发表于 2020-6-9 09:49:33

eric2013 发表于 2016-2-20 11:31
不需要,ucos的这种是为了实现中断多级嵌套和退出中断时,没有中断嵌套,即最后一级中断的情况下根据需要才 ...

UCOS中感觉这个OSIntEnter和OSIntExit完全没必要吧。PendSV的优先级是最低的,即使不是在最后一级中断中调用了相关API进行任务切换,也不会打断当前中断啊,所以根本不需要调用OSIntEnter和OSIntExit

eric2013 发表于 2020-6-9 10:45:30

shibinjie 发表于 2020-6-9 09:49
UCOS中感觉这个OSIntEnter和OSIntExit完全没必要吧。PendSV的优先级是最低的,即使不是在最后一级中断中 ...

其实不写,没啥影响。

现在最新版的uCOS全家桶修改成受uCOS控制的中断和不受uCOS控制的中断,不受控制的可以不用写了。

shibinjie 发表于 2020-6-9 12:49:13

eric2013 发表于 2020-6-9 10:45
其实不写,没啥影响。

现在最新版的uCOS全家桶修改成受uCOS控制的中断和不受uCOS控制的中断,不受控制 ...

就是那个Kernel Aware和Non-Kernel Aware咯。话说不受控制的中断里面可以调用OS的API吗,比如带POST的API

eric2013 发表于 2020-6-9 12:52:16

shibinjie 发表于 2020-6-9 12:49
就是那个Kernel Aware和Non-Kernel Aware咯。话说不受控制的中断里面可以调用OS的API吗,比如带POST的API

不受控制的,不可以调用API,本意是这样的。

dyhfaily 发表于 2020-6-22 11:44:13

eric2013 发表于 2020-6-9 12:52
不受控制的,不可以调用API,本意是这样的。

硬汉兄看源码 不受控的中断 调用POST这些其实没啥事啊 pendsv中断 反正优先级最低。 受控中断只会在最后一次中断退出的时候调用OS_Sched,不受控的可能每次都会调用OS_Sched,OS_Sched()多调用几次也没影响把,只是找出最高优先级的就绪任务的控制块然后触发pendsv中断。

eric2013 发表于 2020-6-22 17:05:51

dyhfaily 发表于 2020-6-22 11:44
硬汉兄看源码 不受控的中断 调用POST这些其实没啥事啊 pendsv中断 反正优先级最低。 受控中断只会在最 ...

主要是想通过不受控的中断实现0中断延迟。

dyhfaily 发表于 2020-6-22 17:27:58

eric2013 发表于 2020-6-22 17:05
主要是想通过不受控的中断实现0中断延迟。

老哥 可否详细点 我没听懂 拜托了:Q:loveliness:

eric2013 发表于 2020-6-23 00:19:07

dyhfaily 发表于 2020-6-22 17:27
老哥 可否详细点 我没听懂 拜托了

专门搞出一个不受控的中断优先级出来,本意就是实现0中断延迟,这里的实现方法就是基于BASEPRI寄存器实现,通过这个寄存器可以仅开关受控中断,而不会开关不受控的中断,这样这些不受控的中断就可以随时响应,是0中断延迟。

dyhfaily 发表于 2020-6-23 09:11:25

eric2013 发表于 2020-6-23 00:19
专门搞出一个不受控的中断优先级出来,本意就是实现0中断延迟,这里的实现方法就是基于BASEPRI寄存器实现 ...

这个0中断的意思啊 懂了
页: [1]
查看完整版本: ucos在中断中有 OSIntEnter(), OSIntExit()这两个函数,freertos有相应的函数吗?