1:下面这段程序实现了端点2和6之间的数据传输,可见数据是存在于EP2FIFOBUF和EP6FIFOBUF中,但在程序中未见到对这两个缓冲区进行赋值的语句,请问是自动赋值还是通过其他的方式? 就是说为什么没有进行赋值,但是缓冲区中就存在数据了呢?
if(!(EP2468STAT & bmEP2EMPTY))
{ // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
if(!(EP2468STAT & bmEP6FULL))
{ // check EP6 FULL(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is full
APTR1H = MSB( &EP2FIFOBUF );
APTR1L = LSB( &EP2FIFOBUF );
AUTOPTRH2 = MSB( &EP6FIFOBUF );
AUTOPTRL2 = LSB( &EP6FIFOBUF );
count = (EP2BCH << 8) + EP2BCL;
// loop EP2OUT buffer data to EP6IN
for( i = 0x0000; i < count; i++ )
{
// setup to transfer EP2OUT buffer to EP6IN buffer using AUTOPOINTER(s)
EXTAUTODAT2 = EXTAUTODAT1;
}
2:在bulkloop的头文件中没有找到与上位机进行读写操作的通信协议,请问驱动中是通过什么方式或者是发什么样的命令来控制固件进行读写操作的?(这里麻烦说清楚一点。)
请大家帮帮忙,谢谢! |