阅读:1269回复:6
D12双缓冲怎么实现?
我看D12的DEMO里面有readmainendpoint和writemainendpoint函数,它们里面好象使用的是同一段内存,请问他们是怎么协同工作的?
双缓冲是这么实现的? [编辑 - 10/23/03 by wangxin_china] |
|
最新喜欢:![]() |
沙发#
发布于:2003-10-23 08:12
双缓冲应该说的是D12在接收数据的时候,单片机可以向D12发数据吧?
我在写数据的时候是不是要看D12的缓冲区是否够用? |
|
板凳#
发布于:2003-10-31 16:01
我也遇到同样的问题。
关注中。。。。 |
|
|
地板#
发布于:2003-10-31 16:10
双缓冲应该说的是D12在接收数据的时候,单片机可以向D12发数据吧? 双缓冲作用是增加你数据吞吐量,D12在接收数据的时候你也可以读上一次接收到的数据。D12在接收数据的时候你给它发数据干什么?host没给你发命令或者上一次命令没结束,你对它写数据是无效的。 |
|
地下室#
发布于:2003-10-31 21:53
其实双缓冲可以看成是内部实现的一个“乒乓FIFO”,他有两个相同大小的fifo组成(但是使用同一个入口地址),当第一个fifo为满时,地址指针会自动跳到第二个fifo的入口处,这时候前一个fifo里的数据已经生效,可以进行读或者传给主机的操作,而同时第二个fifo可以接收数据,这样不会出现等待fifo空情况,因而能提高数据吞吐率。
|
|
5楼#
发布于:2003-11-01 11:19
其实操作起来就测一下缓冲区是不是满了,然后决定是不是发数据就行了
|
|
6楼#
发布于:2003-11-01 11:58
其实操作起来就测一下缓冲区是不是满了,然后决定是不是发数据就行了 按照常理就是等中断,但是我是这样做的。 |
|