![]() |
![]() |
| CSL_Status CDC_bulkInHandler | ( | pUsbContext | pContext, |
| CSL_CdcInitStructApp * | cdcAppHandle | ||
| ) |
============================================================================
CDC_bulkInHandler
Description
This function handles all the CDC ACM bulk IN data transactions
Arguments
pContext Pointer to the USBContext structure
hCdcClass Handle to the CDC Class Obj
Return Value - Status of the processing (CSL_Status)
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns request processing status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcClassStruct cdcClassStruct;
CSL_Status status;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcClassStruct;
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
in USB ISR:
....
....
if (pContext->dwIntSourceL & (1<<CSL_CDC_BULK_IN_EP))
{
// Handle the CDC BULK IN
///CDC_bulkInHandler(pContext, &CDC_AppHandle);
}
....
....
============================================================================
References CSL_USB_IN_TRANSFER, CSL_UsbContext::hEpObjArray, CSL_CdcInitStructApp::txBufferPtr, CSL_CdcInitStructApp::txWorkBufPtr, USB_bytesRemaining(), USB_isTransactionDone(), and USB_postTransaction().
| CSL_Status CDC_bulkOutHandler | ( | pUsbContext | pContext, |
| CSL_CdcInitStructApp * | cdcAppHandle | ||
| ) |
============================================================================
CDC_bulkOutHandler
Description
This function handles all the CDC ACM bulk OUT data transactions
Arguments
pContext Pointer to the USBContext structure
hCdcClass Handle to the CDC Class Obj
Return Value - Status of the processing (CSL_Status)
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns request processing status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcClassStruct cdcClassStruct;
CSL_Status status;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcClassStruct;
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
in USB ISR:
....
....
if (pContext->dwIntSourceL & (1<<(CSL_CDC_BULK_OUT_EP+CSL_USB_IN_EP0)))
{
// Handle the CDC BULK OUT
CDC_bulkOutHandler(pContext, &CDC_AppHandle);
}
....
....
============================================================================
References CSL_USB_OUT_TRANSFER, CSL_UsbContext::hEpObjArray, CSL_UsbContext::pEpStatus, CSL_CdcInitStructApp::rxBufferPtr, USB_bytesRemaining(), USB_epNumToHandle(), USB_getDataCountReadFromFifo(), USB_isTransactionDone(), USB_isValidDataInFifoOut(), and USB_postTransaction().
| CSL_Status CDC_Close | ( | pCdcAppClassHandle | pAppClassHandle | ) |
============================================================================
CDC_Close
Description
This function Opens the Cdc module.
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Closes the Cdc module
Modifies
Cdc and Ctl handles
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
status = CDC_Close(pAppClassHandle);
============================================================================
============================================================================
CDC_Close
Description
This function close the Cdc module.
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Closes the Cdc module
Modifies
Cdc and Ctl handles
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
status = CDC_Close(pAppClassHandle);
============================================================================
References CSL_CdcClassStruct::ctrlHandle, CSL_CdcCtrlObject::devNum, CSL_CdcInitStructApp::pCdcObj, and USB_disconnectDev().
| CSL_CdcRequestRet CDC_eventHandler | ( | pUsbContext | pContext, |
| CSL_CdcClassStruct * | hCdcClass | ||
| ) |
============================================================================
CDC_eventHandler
Description
This function handles all the CDC ACM related requests
Arguments
pContext Pointer to the USBContext structure
hCdcClass Handle to the CDC Class Obj
Return Value - Status of the request (CSL_CdcRequestRet)
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns request processing status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcClassStruct cdcClassStruct;
CSL_Status status;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcClassStruct;
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
in USB ISR:
....
....
if(pContext->dwIntSourceL & CSL_USB_TX_RX_INT_EP0)
{
// call USB core EP0 event handler to process
USB_coreEventProcessEp0(pContext);
// call the CDC event handler for further processing
CDC_eventHandler(pContext, &cdcClassStruct);
}
....
....
============================================================================
References CSL_UsbSetupStruct::bmRequestType, CSL_UsbSetupStruct::bRequest, CSL_CdcClassStruct::cdcHandle, CSL_CdcObject::controlLineState, CSL_CDC_REQUEST_GET_COMM_FEATURE, CSL_CDC_REQUEST_GET_ENCAPSULATED_RESPONSE, CSL_CDC_REQUEST_GET_LINE_CODING, CSL_CDC_REQUEST_SEND_ENCAPSULATED_COMMAND, CSL_CDC_REQUEST_SET_COMM_FEATURE, CSL_CDC_REQUEST_SET_CONTROL_LINE_STATE, CSL_CDC_REQUEST_SET_LINE_CODING, CSL_USB_EP0, CSL_USB_IOFLAG_NONE, CSL_USB_IOFLAG_NOSHORT, CSL_UsbContext::hEpObjArray, CSL_CdcObject::lineCoding, USB_getSetupPacket(), USB_postTransaction(), usbRegisters, CSL_UsbContext::usbSetup, CSL_UsbSetupStruct::wIndex, CSL_UsbSetupStruct::wLength, and CSL_UsbSetupStruct::wValue.
| Uint16 CDC_GetactivityFlagStatus | ( | void * | pCDC | ) |
============================================================================
CDC_GetactivityFlagStatus
Description
This function gives the status of the activity Flag
Arguments
pCDC Handle to the CDC Class Obj
Return Value - Status of the activity flag
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns Activity flag status
Modifies
None
Example
Uint16 activityFlagStat;
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
activityFlagStat = CDC_GetactivityFlagStatus(pAppClassHandle->pCdcObj);
============================================================================
============================================================================
CDC_GetactivityFlagStatus
Description
This function gives the status of the activity Flag
Arguments
pCDC Handle to the CDC Class Obj
Return Value - Status of the activity flag
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns Activity flag status
Modifies
None
Example
Uint16 activityFlagStat;
CSL_MCdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
activityFlagStat = CDC_GetactivityFlagStatus(pAppClassHandle->pCdcObj);
============================================================================
References CSL_CdcObject::activityPresentFlag, and CSL_CdcClassStruct::cdcHandle.
| Uint16 CDC_getData | ( | pUsbContext | pContext, |
| CSL_CdcInitStructApp * | cdcAppHandle, | ||
| Uint16 * | data | ||
| ) |
============================================================================
CDC_getData
Description
This function receives data from the BULK OUT
Arguments
pContext Pointer to the USBContext structure
hCdcClass Handle to the CDC Class Obj
data the data to be transmitted
Return Value - number of byte received
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns request processing status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcClassStruct cdcClassStruct;
CSL_Status status;
Uint16 uartData[80]
Uint16 uartdataSize;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcClassStruct;
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
// Echo the input from the host back to the host
// Get data from the host
uartDataSize = CDC_getData(pContext, &CDC_AppHandle, uartData);
// Echo it back, if there is an input
if (uartDataSize>0)
{
do
{
// CDC_putData will return 0 if the TX is not ready for the transaction
retNum = CDC_putData(pContext, &CDC_AppHandle, uartData, uartDataSize);
} while (retNum==0);
}
....
....
============================================================================
References CSL_CdcInitStructApp::rxBufferPtr.
| Uint16 CDC_GetsuspendFlagStatus | ( | void * | pCDC | ) |
============================================================================
CDC_GetsuspendFlagStatus
Description
This function gives the status of the suspend Flag
Arguments
pCDC Handle to the CDC Class Obj
Return Value - Status of the suspend flag
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns suspend flag status
Modifies
None
Example
Uint16 suspendFlagStat;
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
suspendFlagStat = CDC_GetsuspendFlagStatus(pAppClassHandle->pCdcObj);
============================================================================
References CSL_CdcClassStruct::ctrlHandle, and CSL_CdcCtrlObject::suspendFlag.
| CSL_Status CDC_Open | ( | pCdcAppClassHandle | pAppClassHandle | ) |
============================================================================
CDC_Open
Description
This function Opens the Cdc module. It initializes Cdc and Ctrl handles with the data given by the application.
NOTE: THIS FUNCTION CONFIGURES USB CDC MODULE IN HIGH SPEED MODE
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
None
Post Condition
Initializes Cdc and Ctrl handles
Modifies
Cdc and Ctrl handle data
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
============================================================================
============================================================================
CDC_Open
Description
This function Opens the CDC module. It initializes CDC and Ctrl handles with the data given by the application.
NOTE: THIS FUNCTION CONFIGURES USB CDC MODULE IN HIGH SPEED MODE
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
None
Post Condition
Initializes CDC and Ctrl handles
Modifies
CDC and Ctrl handle data
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &mscAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(pAppClassHandle);
============================================================================
References CDC_Setup().
| CSL_Status CDC_OpenFullspeed | ( | pCdcAppClassHandle | pAppClassHandle | ) |
============================================================================
CDC_OpenFullspeed
Description
This function Opens the Cdc module for fullspeed mode operation. It initializes Cdc and Ctrl handles with the data given by the application
NOTE: THIS FUNCTION CONFIGURES USB CDC MODULE IN FULLSPEED MODE
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
None
Post Condition
Initializes Cdc and Ctrl handles
Modifies
Cdc and Ctrl handle data
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_OpenFullspeed(pAppClassHandle);
============================================================================
============================================================================
CDC_OpenFullspeed
Description
This function Opens the Cdc module for fullspeed mode operation. It initializes Cdc and Ctrl handles with the data given by the application
NOTE: THIS FUNCTION CONFIGURES USB CDC MODULE IN FULLSPEED MODE
Arguments
pAppClassHandle Application handle to the CDC Class Obj
Return Value CSL_Status
Pre Condition
None
Post Condition
Initializes Cdc and Ctrl handles
Modifies
Cdc and Ctrl handle data
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_OpenFullspeed(pAppClassHandle);
============================================================================
References CDC_Setup(), CSL_USB_EP0_PACKET_SIZE, and USB_setFullSpeedMode().
| Uint16 CDC_putData | ( | pUsbContext | pContext, |
| CSL_CdcInitStructApp * | cdcAppHandle, | ||
| Uint16 * | data, | ||
| Uint16 | size | ||
| ) |
============================================================================
CDC_putData
Description
This function sends out the data to the BULK IN
Arguments
pContext Pointer to the USBContext structure
hCdcClass Handle to the CDC Class Obj
data the data to be transmitted
size the data size
Return Value - number of byte sent out
Pre Condition
CDC module should be opened using CDC_Open/CDC_OpenFullspeed function
Post Condition
Returns request processing status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcClassStruct cdcClassStruct;
CSL_Status status;
Uint16 uartData[80]
Uint16 uartdataSize;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcClassStruct;
.....
.....
status = CDC_Open(pAppClassHandle);
....
....
// Echo the input from the host back to the host
// Get data from the host
uartDataSize = CDC_getData(pContext, &CDC_AppHandle, uartData);
// Echo it back, if there is an input
if (uartDataSize>0)
{
do
{
// CDC_putData will return 0 if the TX is not ready for the transaction
retNum = CDC_putData(pContext, &CDC_AppHandle, uartData, uartDataSize);
} while (retNum==0);
}
....
....
============================================================================
References CSL_USB_IN_TRANSFER, CSL_UsbContext::hEpObjArray, CSL_CdcInitStructApp::txBufferPtr, CSL_CdcInitStructApp::txWorkBufPtr, USB_bytesRemaining(), USB_isTransactionDone(), and USB_postTransaction().
| static CSL_CdcRequestRet CDC_reqClearFeature | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqClearFeature
Description
This function handles the request to clear the feature set
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Clears the feature
Modifies
USB registers
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_USB_FEATURE_ENDPOINT_STALL, CSL_USB_FEATURE_REMOTE_WAKEUP, USB_clearEndptStall(), USB_epNumToHandle(), USB_setRemoteWakeup(), CSL_UsbSetupStruct::wIndex, and CSL_UsbSetupStruct::wValue.
| static CSL_CdcRequestRet CDC_reqGetConfiguration | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqGetConfiguration
Description
This function handles the request from host to get configuration
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sends the configuration
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_USB_IOFLAG_NONE, CSL_USB_IOFLAG_NOSHORT, CSL_CdcClassStruct::ctrlHandle, CSL_CdcCtrlObject::curConfigStat, and USB_postTransaction().
| static CSL_CdcRequestRet CDC_reqGetInterface | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqGetInterface
Description
This function handles the request from host to get interface unit number
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sends interface info
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_USB_IOFLAG_NONE, CSL_CdcClassStruct::ctrlHandle, USB_postTransaction(), and CSL_UsbSetupStruct::wIndex.
| static CSL_CdcRequestRet CDC_reqGetMaxLUN | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqGetMaxLUN
Description
This function handles the request from host to send maximum logical unit number
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sends the max lun number
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_CdcClassStruct::cdcHandle, CSL_USB_IOFLAG_NONE, CSL_CdcClassStruct::ctrlHandle, USB_postTransaction(), CSL_UsbSetupStruct::wIndex, CSL_UsbSetupStruct::wLength, and CSL_UsbSetupStruct::wValue.
| static CSL_CdcRequestRet CDC_reqGetStatus | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqGetStatus
Description
This function handles the get status request from host
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sends the status
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_UsbSetupStruct::bmRequestType, CSL_USB_IOFLAG_NONE, CSL_CdcClassStruct::ctrlHandle, USB_epNumToHandle(), USB_getEndptStall(), USB_getRemoteWakeupStat(), USB_postTransaction(), and CSL_UsbSetupStruct::wIndex.
| static CSL_CdcRequestRet CDC_reqSetAddress | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqSetAddress
Description
This function handles the request to set the device address
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sets the device address
Modifies
USB FADDR_POWER register
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References USB_setDevAddr(), and CSL_UsbSetupStruct::wValue.
| static CSL_CdcRequestRet CDC_reqSetConfiguration | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqSetConfiguration
Description
This function handles the request to set the device configuration
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sets the configuration
Modifies
USB registers
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_CdcClassStruct::ctrlHandle, CSL_CdcCtrlObject::curConfigStat, USB_setConfiguration(), and CSL_UsbSetupStruct::wValue.
| static CSL_CdcRequestRet CDC_reqSetFeature | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqSetFeature
Description
This function handles the request from host to set feature
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sets the feature
Modifies
USB regiters
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References CSL_USB_FEATURE_ENDPOINT_STALL, CSL_USB_FEATURE_REMOTE_WAKEUP, USB_epNumToHandle(), USB_setRemoteWakeup(), USB_stallEndpt(), CSL_UsbSetupStruct::wIndex, and CSL_UsbSetupStruct::wValue.
| static CSL_CdcRequestRet CDC_reqSetInterface | ( | CSL_UsbDevNum | devNum, |
| CSL_UsbSetupStruct * | usbSetup, | ||
| pUsbEpHandle | hInEp, | ||
| pUsbEpHandle | hOutEp, | ||
| void * | pCdc | ||
| ) | [inline, static] |
============================================================================
CDC_reqSetInterface
Description
This function handles the request from host to set interface unit number
Arguments
devNum - USB device number
usbSetup - USB setup structure pointer
hInEp - USB IN endpoint handle
hOutEp - USB OUT endpoint handle
pCdc - Handle to the CDC Class Obj
Return Value
Pre Condition
CDC_lookupReqHandler should be called successfully
Post Condition
Sends acknowledgement
Modifies
None
Example
CSL_CdcInitStructApp cdcAppHandle;
CSL_CdcObject *pCdcHandle;
CSL_CdcCtrlObject *pCtrlHandle;
pUsbEpHandle hUbOutEp;
Uint16 lunNum;
Uint16 cdcAppBuffer[420];
CSL_Status status;
Uint16 request;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
status = CDC_Open(&cdcAppHandle);
....
....
pCtrlHandle->fpRequestHandler = CDC_lookupReqHandler(request,
pCtrlHandle->cdcReqTable);
pCtrlHandle->fpRequestHandler(pCtrlHandle->devNum,
&pCtrlHandle->usbSetup,hCtrlEpIn,hCtrlEpOut,pCDC);
============================================================================
References USB_setConfiguration(), CSL_UsbSetupStruct::wIndex, and CSL_UsbSetupStruct::wValue.
| static CSL_Status CDC_Setup | ( | pCdcAppClassHandle | pAppClassHandle, |
| Bool | usbSpeedCfg | ||
| ) | [static] |
============================================================================
CDC_Setup
Description
This function used to setup the Cdc and Ctrl handles. This is an internal function and is called from CDC_Open or CDC_OpenFullspeed functions.
Arguments
pAppClassHandle Application handle to the CDC Class Obj
usbSpeedCfg USB speed selection parameter
0 - USB CDC operates in fullspeed mode
1 - USB CDC operates in highspeed mode
Return Value CSL_Status
Pre Condition
None
Post Condition
Initializes Cdc and Ctrl handles
Modifies
Cdc and Ctrl handle data
Example
CSL_CdcInitStructApp cdcAppHandle;
pCdcAppClassHandle pAppClassHandle;
Uint16 cdcAppBuffer[420];
CSL_Status status;
pAppClassHandle = &cdcAppHandle;
// Assign values to all the members in cdcAppHandle struct
cdcAppHandle.pCdcObj = &cdcAppBuffer[0];
.....
.....
// Setup USB for highspeed
status = CDC_Setup(pAppClassHandle, TRUE);
============================================================================
1.7.4