nRF52840 only: Internals of the USB MSC class. More...
Data Structures | |
struct | app_usbd_msc_inst_t |
MSC part of class instance data. More... | |
struct | app_usbd_msc_ctx_t |
MSC context. More... | |
Macros | |
#define | APP_USBD_MSC_MINIMAL_SERIAL_STRING_SIZE (12 + 1) |
Minimal serial string descriptor length. | |
#define | APP_USBD_MSC_BUFFER_CNT 2 |
Number of block buffers. More... | |
#define | APP_USBD_MSC_BUFFER_NAME(instance_name) CONCAT_2(instance_name, _block) |
Create the name of the block buffer. More... | |
#define | APP_USBD_MSC_BLKDEVS_NAME(instance_name) CONCAT_2(instance_name, _blkdevs) |
Create the name of the block device list. More... | |
#define | APP_USBD_MSC_CONFIG(iface, endpoints) ((iface, BRACKET_EXTRACT(endpoints))) |
MSC configuration macro. More... | |
#define | APP_USBD_MSC_INSTANCE_SPECIFIC_DEC app_usbd_msc_inst_t inst; |
Specific class constant data for MSC. More... | |
#define | APP_USBD_MSC_INST_CONFIG(p_devs,devs_cnt,p_buff,block_size,block_cnt,user_event_handler) |
Configures MSC instance. More... | |
#define | APP_USBD_MSC_DATA_SPECIFIC_DEC app_usbd_msc_ctx_t ctx; |
Specific class data for MSC. More... | |
#define | APP_USBD_MSC_DSC_CONFIG(interface_number,...) |
MSC descriptors config macro. More... | |
#define | APP_USBD_MSC_GLOBAL_DEF_INTERNAL(instance_name,interface_number,user_ev_handler,endpoint_list,blockdev_list,workbuffer_size) |
Global definition of mass storage class instance. More... | |
Typedefs | |
typedef void(* | app_usbd_msc_user_ev_handler_t )(app_usbd_class_inst_t const *p_inst, enum app_usbd_msc_user_event_e event) |
User event handler. More... | |
Functions | |
APP_USBD_CLASS_FORWARD (app_usbd_msc) | |
Forward declaration of Mass Storage Class type. | |
Variables | |
const app_usbd_class_methods_t | app_usbd_msc_class_methods |
Public MSC class interface. | |
nRF52840 only: Internals of the USB MSC class.
#define APP_USBD_MSC_BLKDEVS_NAME | ( | instance_name | ) | CONCAT_2(instance_name, _blkdevs) |
Create the name of the block device list.
instance_name | The name of the MSC instance |
#define APP_USBD_MSC_BUFFER_CNT 2 |
Number of block buffers.
Number of buffers used for the transfer. The library is designed to work with double buffering. Not tested with other configuration.
#define APP_USBD_MSC_BUFFER_NAME | ( | instance_name | ) | CONCAT_2(instance_name, _block) |
Create the name of the block buffer.
instance_name | The name of the MSC instance |
#define APP_USBD_MSC_CONFIG | ( | iface, | |
endpoints | |||
) | ((iface, BRACKET_EXTRACT(endpoints))) |
MSC configuration macro.
Used by APP_USBD_MSC_GLOBAL_DEF
iface | Interface number. |
endpoints | Endpoint list. |
#define APP_USBD_MSC_DATA_SPECIFIC_DEC app_usbd_msc_ctx_t ctx; |
Specific class data for MSC.
#define APP_USBD_MSC_DSC_CONFIG | ( | interface_number, | |
... | |||
) |
MSC descriptors config macro.
interface_number | Interface number. |
... | Extracted endpoint list. |
#define APP_USBD_MSC_GLOBAL_DEF_INTERNAL | ( | instance_name, | |
interface_number, | |||
user_ev_handler, | |||
endpoint_list, | |||
blockdev_list, | |||
workbuffer_size | |||
) |
Global definition of mass storage class instance.
#define APP_USBD_MSC_INST_CONFIG | ( | p_devs, | |
devs_cnt, | |||
p_buff, | |||
block_size, | |||
block_cnt, | |||
user_event_handler | |||
) |
Configures MSC instance.
p_devs | Block devices list that is array of pointers of nrf_block_dev_t type. |
devs_cnt | Number of block devices connected. |
p_buff | Block buffer. |
block_size | Total size of the single block in the buffer. |
block_cnt | Number of available block buffers. |
user_event_handler | User event handler. |
#define APP_USBD_MSC_INSTANCE_SPECIFIC_DEC app_usbd_msc_inst_t inst; |
Specific class constant data for MSC.
typedef void(* app_usbd_msc_user_ev_handler_t)(app_usbd_class_inst_t const *p_inst, enum app_usbd_msc_user_event_e event) |
User event handler.
[in] | p_inst | Class instance. |
[in] | event | User event. |
enum app_usbd_msc_state_t |
Internal module state.
Enumerator | |
---|---|
APP_USBD_MSC_STATE_DISABLED |
Internal module state DISABLED |
APP_USBD_MSC_STATE_IDLE |
Internal module state IDLE |
APP_USBD_MSC_STATE_CBW |
Internal module state CBW |
APP_USBD_MSC_STATE_CMD_IN |
Internal module state CMD_IN |
APP_USBD_MSC_STATE_DATA_IN |
Internal module state DATA_IN |
APP_USBD_MSC_STATE_DATA_OUT |
Internal module state DATA_OUT |
APP_USBD_MSC_STATE_CSW |
Internal module state CSW |
APP_USBD_MSC_STATE_UNSUPPORTED |
Internal module state UNSUPPORTED |
APP_USBD_MSC_STATE_CBW_INVALID |
Endpoint is stalled until the command APP_USBD_MSC_REQ_BULK_RESET |
APP_USBD_MSC_STATE_DEVICE_ERROR |
Endpoint is stalled and it is required to send PE error when clearing |