代码改变世界

RTP的root task接收kernel mode EVENT的解决方法

2011-01-28 17:42  Jeff  阅读(686)  评论(0编辑  收藏  举报
这两天一直被这个问题block. Vxworks的文档上没有提及Vxworks的RTP的root task如何接收来自kernel mode的event. 这里的root rask是指RTP spwan后自动生成的task. 据说其他有些公司,也是用这个方法workaround的。目前windriver公司表示无奈。 首先搞清楚1个概念: RTP只能看到RTP的PID,不能看到RTP的RTP_ID. 1. 第一步获得PID, 实际就是wind_RTP的一个成员
OBJ_HANDLE PID =rtpHandleIdGet(rtpPtu0ID)
2. 把这个PID和RTP_ID作为参数传给objHandleToObjId, 获得OBJ_ID
OBJ_ID = objHandleToObjId(PID,RTP_ID,false)
3. Kernel mode把上面得到的OBJ_ID作为Kernel task的task ID发送event
eventSend((int)(OBJ_ID , mask)
以上都是伪代码,并且是暂时知道的解决方案。 这个方法没办法解决RTP里其他task怎么接收来自Kernel mode的event的问题。