嵌入式技术william hill官网
直播中

张英

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

RT-Thread对于中断服务程序的默认处理方式是怎样的?

如果我注册一个外部中断,但是其中断服务函数需要处理1s,但是在这1s内又出现了多次外部触发,那么rtthread的默认处理方式是什么样的啊?
1.中断嵌套,停止当前的中断服务函数,进入新触发后的中断服务函数,等新的执行完了再执行老的中断服务函数。
2.不处理1s内其他的外部触发,1s内的所有触发全部直接屏蔽。
3.队列执行,1s内的所有外部触发全部放入队列,等待当前的中断服务函数执行完成,依次执行新的中断服务函数。
注:我说的是都是外部中断的情况下,不考虑其他中断交替出现。
请问哪位大神能告知一下。

回帖(3)

张鹏

2022-3-21 15:59:50
看具体的BSP代码在哪里清中断,

一进就清,那结束ISR后会再来一次,
退出时(再次中断之后)才清,那么就丢1次。
另外,谁的中断ISR要1秒,请直接拖出去打4。
举报

杜喜喜

2022-3-21 16:00:11
改为线程+队列执行吧,中断里不要执行耗时的操作,也就是 方法 3
信号量(消息队列、事件集)应该都可以用在这种场景
举报

王萍

2022-3-21 16:44:58
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

更多回帖

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