DSP/BIOS环境下的数据通信
alloc的调用都要跟着对PIP_put的调用才能继续调用PIP_alloc;对于PIP_get,情况也是如此。
另外,为了避免PIP调用过程中产生递归,作为通知读/写函数的一部分,应该避免调用PIPAPI函数。如果为了效率起见必须要这样做,那么对诸如此类的调用应该加以保护,以阻止同一管道对象的重入以及错误的PIPAPI调用顺序。例如,在发送管道的通知读函数以及接收管道的通知写函数的开始部分,我们添加了如下语句,以避免递归调用:
staticIntnested=0;
…
if(nested){/*防止由于调用PIP_get函数而产生的递归调用*/
return;
}
nested=1;
…
3总结
在DSP/BIOS提供的3种通信方式中,由于PIP对象的效率很高,因此使得它在基于DSP应用系统的输入输出中得到了广泛的应用。但是,我们在利用其所提供的便利的同时,一定要妥善处理好通知读/写函数的编写工作,以免发生递归调用,产生灾难性的后果。
《DSP/BIOS环境下的数据通信(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174561.html
另外,为了避免PIP调用过程中产生递归,作为通知读/写函数的一部分,应该避免调用PIPAPI函数。如果为了效率起见必须要这样做,那么对诸如此类的调用应该加以保护,以阻止同一管道对象的重入以及错误的PIPAPI调用顺序。例如,在发送管道的通知读函数以及接收管道的通知写函数的开始部分,我们添加了如下语句,以避免递归调用:
staticIntnested=0;
…
if(nested){/*防止由于调用PIP_get函数而产生的递归调用*/
return;
}
nested=1;
…
3总结
在DSP/BIOS提供的3种通信方式中,由于PIP对象的效率很高,因此使得它在基于DSP应用系统的输入输出中得到了广泛的应用。但是,我们在利用其所提供的便利的同时,一定要妥善处理好通知读/写函数的编写工作,以免发生递归调用,产生灾难性的后果。
《DSP/BIOS环境下的数据通信(第3页)》