📄 bulkcmd.c
字号:
/*
*********************************************************************************************************
* File: BulkCmd.C
* Contents:
*
* $Date: 04/06/06 Kimi v0.1
* 01/05/07 kevin v0.2
* 01/08/07 kevin v0.3
* 01/29/07 kevin v0.4
* Copyright (c) 2007 Fameg, Inc. All rights reserved
*********************************************************************************************************
*/
#include "fs7805.h"
#include "fs7805regs.h"
#include "Include.h"
/*************************************************
Global Variables
*************************************************/
UINT16 SectorCount = 0;
BYTE SW_OUT_FIFO_Toggle = 0;
BYTE SW_IN_FIFO_Toggle = 0;
WORD FIFO_ADDRESS_IN;
WORD FIFO_ADDRESS_OUT;
WORD UsbDmaBuffer ;
/*
*********************************************************************************************************
* ParseOut
*
* Description: Select which fifo is the OUTFIFO of usb
*
* Arguments : none
*
* Returns : none
*********************************************************************************************************
*/
void ParseOut (void)
{
// FULL_0 = 1 and FULL_1 = 1
if ((EPAFIFOCS & bmFIFO0_FULL) && (EPAFIFOCS & bmFIFO1_FULL))
{
if (SW_OUT_FIFO_Toggle == 0)
{
FIFO_ADDRESS_OUT = DMA_FIFOA0; // data stored in fifo 0
}
else
{
FIFO_ADDRESS_OUT = DMA_FIFOA1; // data stored in fifo 1
}
}
else if (EPAFIFOCS & bmFIFO0_FULL) // FULL_0 = 1
{
FIFO_ADDRESS_OUT = DMA_FIFOA0; // data stored in fifo 0
}
else if (EPAFIFOCS & bmFIFO1_FULL) // FULL_1 = 1
{
FIFO_ADDRESS_OUT = DMA_FIFOA1; // data stored in fifo 1
}
UsbDmaBuffer = FIFO_ADDRESS_OUT;
}
/*
*********************************************************************************************************
* PassOut
*
* Description: Pass USB data to SFI and reverse software toggle
*
* Arguments : none
*
* Returns : none
*********************************************************************************************************
*/
void PassOut (void)
{
ParseOut();
if (FIFO_ADDRESS_OUT == DMA_FIFOA0)
{
EPACNTH = 0x0A;
EPACNT0L = 0x00; // EPA CNT = 512, For USB 1.1
SFI_SKIP = 0x01; // pass data to SFI
}
else
{
EPACNTH = 0xA0;
EPACNT1L = 0x00; // EPA CNT = 512, For USB 1.1
SFI_SKIP = 0x41; // pass data to SFI
}
SW_OUT_FIFO_Toggle = !SW_OUT_FIFO_Toggle; // reverse software toggle
}
/*
*********************************************************************************************************
* PassIn
*
* Description: Reverse software toggle
*
* Arguments : none
*
* Returns : none
*********************************************************************************************************
*/
void PassIn (void)
{
SW_IN_FIFO_Toggle = !SW_IN_FIFO_Toggle; // reverse software toggle
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -