阅读:1008回复:1
问题9,帮帮忙,谢谢
在Send函数和接受中断处理函数还有发送完成中断处理函数的顺序上我被搞得一团晕。就是担心Send函数执行一半的时候跳进来中断函数,在处理发送完成函数的时候,上层又有数据包要发送。这样搞来搞去我已经晕了。其实我的硬件和驱动比较像NE2000的那个例子,我反复琢磨,觉得这个例子在这些方面完全没有问题。但是我有个问题,不是就只有一个CPU吗,它怎么可能会想要同时执行两个函数。举个例子:我在处理发送完成中断的时候看到队列中还有数据要发送就接着进行下个数据包的发送,正在执行当中。上层会不会有可能又调用Send函数。
表达得不是很清楚,希望有人可以回答一下,困惑很久了。 |
|
|
沙发#
发布于:2005-05-18 12:57
如果只有一个cpu,显然不可能同时执行两个函数
当send函数执行的时候,如果中断进来了,就先挂起send函数,先处理中断,中断函数处理完,在恢复被挂起的send函数,继续执行 <<举个例子:我在处理发送完成中断的时候看到队列中还有数据要发<<M送就接着进行下个数据包的发送,正在执行当中。上层会不会有<<可能又调用Send函数。 如果你用发送完成中断,在发送完成中断处理函数中再发送队列中的数据包是在dpc level,这时候上层不会有机会发送send函数 你可以找一些os,多线程,中断方面的书看看 |
|