Skip to content

Custom addition usbd driver #467

@chang196700

Description

@chang196700

In _usbd_driver array (in file usbd.c), could add a include like

#ifdef USBD_DRIVER_INCLUDE_H
#include USBD_DRIVER_INCLUDE_H
#endif

#ifdef USBD_DRIVER_INCLUDE
#include USBD_DRIVER_INCLUDE
#endif

to support user custom usbd drivers, avoiding modifying files.

The file will be like:

#include "tusb.h"
#include "device/usbd.h"
#include "device/usbd_pvt.h"
#include "device/dcd.h"

#ifdef USBD_DRIVER_INCLUDE_H
#include USBD_DRIVER_INCLUDE_H
#endif

// ...

static usbd_class_driver_t const _usbd_driver[] =
{
// Original content
  #if CFG_TUD_CDC
  {
      DRIVER_NAME("CDC")
      .init             = cdcd_init,
      .reset            = cdcd_reset,
      .open             = cdcd_open,
      .control_request  = cdcd_control_request,
      .control_complete = cdcd_control_complete,
      .xfer_cb          = cdcd_xfer_cb,
      .sof              = NULL
  },
  #endif

// More ...

// Add this
#ifdef USBD_DRIVER_INCLUDE
#include USBD_DRIVER_INCLUDE
#endif

};

// ...

User can define USBD_DRIVER_INCLUDE, e.g. <usbd_driver.include>
The file usbd_driver.include content could be like:

{
	DRIVER_NAME("CCID")
	.init = ccid_init,
	.reset = ccid_reset,
	.open = ccid_open,
	.control_request = ccid_control_request,
	.control_complete = ccid_control_complete,
	.xfer_cb = ccid_xfer_cb,
	.sof = NULL
},
// More ...

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions