Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for CDC ECM subclass driver and sample app #13

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions App/Device/app_usbd.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@
#define APP_CFG_USBD_CDC_SERIAL_TEST_EN DEF_DISABLED
#endif

#ifndef APP_CFG_USBD_CDC_ECM_EN
#define APP_CFG_USBD_CDC_ECM_EN DEF_DISABLED
#endif

#ifndef APP_CFG_USBD_CDC_EEM_EN
#define APP_CFG_USBD_CDC_EEM_EN DEF_DISABLED
#endif
Expand Down Expand Up @@ -196,6 +200,12 @@ CPU_BOOLEAN App_USBD_CDC_Init (CPU_INT08U dev_nbr,
CPU_INT08U cfg_fs);
#endif

#if (APP_CFG_USBD_CDC_ECM_EN == DEF_ENABLED)
USBD_ERR App_USBD_CDC_ECM_Init (CPU_INT08U dev_nbr,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To keep the consistency with the other class application Init functions, change the return from USBD_ERR to CPU_BOOLEAN and remove 3 spaces before (CPU_INT08U

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In addition, You will need to add the call to App_USBD_CDC_ECM_Init() in App_USBD_Init() which is found in App\Device\app_usbd.c

#if (APP_CFG_USBD_CDC_ECM_EN == DEF_ENABLED)
    ok = App_USBD_CDC_ECM_Init(dev_nbr,                         /* Initialize CDC ECM class.                            */
                               cfg_hs_nbr,
                               cfg_fs_nbr);
    if (ok != DEF_OK) {
        APP_TRACE_DBG(("    ... could not initialize CDC ECM class w/err =  %d\r\n\r\n", err));
        return (DEF_FAIL);
    }
#endif

CPU_INT08U cfg_hs,
CPU_INT08U cfg_fs);
#endif

#if (APP_CFG_USBD_CDC_EEM_EN == DEF_ENABLED)
CPU_BOOLEAN App_USBD_CDC_EEM_Init(CPU_INT08U dev_nbr,
CPU_INT08U cfg_hs,
Expand Down Expand Up @@ -282,6 +292,19 @@ CPU_BOOLEAN App_USBD_Audio_Init (CPU_INT08U dev_nbr,
#endif


/*
*********************************************************************************************************
* CDC-ECM CLASS CHECK
*********************************************************************************************************
*/

#if ((APP_CFG_USBD_CDC_ECM_EN != DEF_ENABLED) && \
(APP_CFG_USBD_CDC_ECM_EN != DEF_DISABLED))
#error "APP_CFG_USBD_CDC_ECM_EN illegally #defined in 'app_cfg.h' "
#error " [MUST be DEF_ENABLED or DEF_DISABLED] "
#endif


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To keep the consistency as the other class application files, add the error check for the application task stack and priority as follow:

#if    (APP_CFG_USBD_CDC_ECM_EN == DEF_ENABLED)

#ifndef  APP_USBD_ECM_TASK_STK_SIZE
#error  "APP_USBD_ECM_TASK_STK_SIZE                 not #defined in 'app_cfg.h'  "
#error  "                              [MUST be > 0u ]                           "
#endif

#ifndef  APP_USBD_ECM_TASK_PRIO
#error  "APP_USBD_ECM_TASK_PRIO                     not #defined in 'app_cfg.h'  "
#error  "                              [MUST be > 0u ]                           "
#endif

#endif

/*
*********************************************************************************************************
* CDC-EEM CLASS CHECK
Expand Down
Loading