VSF的事件队列再做改进---用户自定义事件队列的位置

[复制链接]
1237|4
 楼主| Simon21ic 发表于 2015-12-23 13:31 | 显示全部楼层 |阅读模式
本帖最后由 Simon21ic 于 2015-12-23 13:33 编辑

之前使用PendSV来实现一个可以抢占的事件队列,但是PendSV毕竟只有一个,如果要实现更高优先级的事件队列的话,按要如何处理呢?

最新的VSF构架中,事件队列增加了一个activate接口,通过这个接口,用户可以自己定义事件队列的运行位置,运行位置决定了优先级。activate就是在事件发到事件队列之后,激活事件队列的接口。

比如,PendSV事件队列运行在PendSV,那么PendSV的优先级设置,就决定了这个事件队列的优先级。
activate接口,就应该是激活PendSV。

如果,有事件队列运行在syscall里的话,那么syscall的优先级,就一样,决定了事件队列的优先级。
activate接口,就是调用相应的syscall。

脑洞再开大的话,用一个GPIO控制EINT中断,也可以实现一个优先级的事件队列。activate就只是设置响应的IO口,处理完后释放。
其他各种可控的中断,都可以实现一个事件队列,当然,应用中还是看实际是否需要这么多。

zou2012 发表于 2016-1-21 17:02 | 显示全部楼层
为啥没让人评论,虽然我是小白看不懂,还是支持一下下!!!
keer_zu 发表于 2016-1-22 09:39 | 显示全部楼层
顶,等下文。
 楼主| Simon21ic 发表于 2016-1-22 12:55 | 显示全部楼层
我们实现系统的方式太特殊,几乎没什么人这么玩,所以评论的人自然不会多
keer_zu 发表于 2016-1-22 16:10 | 显示全部楼层
Simon21ic 发表于 2016-1-22 12:55
我们实现系统的方式太特殊,几乎没什么人这么玩,所以评论的人自然不会多 ...

有用,能解决实际问题就行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部