USBD ROM Stack  1.0
ROM based USB device stack

DFU class API functions structure.This module exposes functions which interact directly with USB device controller hardware. More...

#include <mw_usbd/mw_usbd_dfuuser.h>

Data Fields

uint32_t(* GetMemSize )(USBD_DFU_INIT_PARAM_T *param)
ErrorCode_t(* init )(USBD_HANDLE_T hUsb, USBD_DFU_INIT_PARAM_T *param, uint32_t init_state)

Detailed Description

DFU class API functions structure.

This module exposes functions which interact directly with USB device controller hardware.


Field Documentation

Function to determine the memory required by the DFU function driver module.

This function is called by application layer before calling pUsbApi->dfu->Init(), to allocate memory used by DFU function driver module. The application should allocate the memory which is accessible by USB controller/DMA controller.

Note:
Some memory areas are not accessible by all bus masters.
Parameters:
[in]paramStructure containing DFU function driver module initialization parameters.
Returns:
Returns the required memory size in bytes.

Function to initialize DFU function driver module.

This function is called by application layer to initialize DFU function driver module.

Parameters:
[in]hUsbHandle to the USB device stack.
[in,out]paramStructure containing DFU function driver module initialization parameters.
Returns:
Returns ErrorCode_t type to indicate success or error condition.
Return values:
LPC_OKOn success
ERR_USBD_BAD_MEM_BUFMemory buffer passed is not 4-byte aligned or smaller than required.
ERR_API_INVALID_PARAM2Either DFU_Write() or DFU_Done() or DFU_Read() call-backs are not defined.
ERR_USBD_BAD_DESC
  • USB_DFU_DESCRIPTOR_TYPE is not defined immediately after interface descriptor.
  • wTransferSize in descriptor doesn't match the value passed in param->wTransferSize.
  • DFU_Detach() is not defined while USB_DFU_WILL_DETACH is set in DFU descriptor.
ERR_USBD_BAD_INTF_DESCWrong interface descriptor is passed.

The documentation for this struct was generated from the following file: