⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 device.c

📁 U盘控制器USB97C223的固件代码,对2kPAGE NAND FLASH 有很好的支持.
💻 C
📖 第 1 页 / 共 5 页
字号:
  k_usb_devdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_device,          // descriptor type: device
  0x00,                           // usb version lo
  0x02,                           // usb version hi
  0x00,                           // device class: see interfaces
  0x00,                           // subclass:  see interfaces
  0x00,                           // protocol:  see interfaces
  k_maxpktsz,                     // ndp 0 max packet size (8,16,32,64)
  k_vendorlo,                     // vendor lo
  k_vendorhi,                     // vendor hi
  k_dev_productlo,                // product lo
  k_dev_producthi,                // product hi
  kbcd_dev_version_minor,         // device release lo
  kbcd_dev_version_major,         // device release hi
  k_dev_idx_str_dscr_mfg,         // manufacturer string index
  k_dev_idx_str_dscr_prd,         // product string index
  0,                              // serial string index
  k_dev_max_configuration         // number of configurations
};
// high speed device descriptor with serial number - cds
uint8 code g_hs_dev_dscr_w_ser[] =
{
  k_usb_devdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_device,          // descriptor type: device
  0x00,                           // usb version lo
  0x02,                           // usb version hi
  0x00,                           // device class: see interfaces
  0x00,                           // subclass:  see interfaces
  0x00,                           // protocol:  see interfaces
  k_maxpktsz,                     // ndp 0 max packet size (8,16,32,64)
  k_vendorlo,                     // vendor lo
  k_vendorhi,                     // vendor hi
  k_dev_productlo,                // product lo
  k_dev_producthi,                // product hi
  kbcd_dev_version_minor,         // device release lo
  kbcd_dev_version_major,         // device release hi
  k_dev_idx_str_dscr_mfg,         // manufacturer string index
  k_dev_idx_str_dscr_prd,         // product string index
  k_dev_idx_str_dscr_ser,         // cds - serial string index
  k_dev_max_configuration         // number of configurations
};
//------------------------------------------------------------------------------
// device qualifier descriptor
//------------------------------------------------------------------------------
// full speed device qualifier descriptor
uint8 code g_fs_devqual_dscr[] =
{
  k_usb_devqualdscrsz,            // length of descriptor in bytes
  k_usb_dscr_typ_devqual,         // descriptor type: device qualifier
  0x00,                           // usb version lo
  0x02,                           // usb version hi
  0x00,                           // device class: see interfaces
  0x00,                           // subclass:  see interfaces
  0x00,                           // protocol:  see interfaces
  k_maxpktsz,                     // ndp 0 max packet size, other speed
  k_dev_max_configuration,        // number of other speed configurations
  0                               // reserved
};
//------------------------------------------------------------------------------
// high speed device qualifier descriptor
uint8 code g_hs_devqual_dscr[] =
{
  k_usb_devqualdscrsz,            // length of descriptor in bytes
  k_usb_dscr_typ_devqual,         // descriptor type: device qualifier
  0x00,                           // usb version lo
  0x02,                           // usb version hi
  0x00,                           // device class: see interfaces
  0x00,                           // subclass:  see interfaces
  0x00,                           // protocol:  see interfaces
  k_maxpktsz,                     // ndp 0 max packet size, other speed
  k_dev_max_configuration,        // number of other speed configurations
  0                               // reserved
};
//------------------------------------------------------------------------------
// configuration descriptor
//------------------------------------------------------------------------------
// full speed configuration descriptor
uint8 code g_fs_cfg_dscr[] =
{
  k_usb_cfgdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_config,          // descriptor type: configuration
  k_usb_cfgdscrsz +
  k_usb_ifcdscrsz +
  k_usb_ndpdscrsz +
  #ifdef k_append_dfu_dscr
  k_usb_ndpdscrsz +
  k_dfu_funcdscrsz,               // total length lo
  #else
  k_usb_ndpdscrsz,                // total length lo
  #endif
  0,                              // total length hi
  1,                              // number of interfaces   2 to accomodate the DFU
  0x01,                           // configuration value
  0x00,                           // index of string descriptor
  0x80,                           // attributes: bus powered, no remote wakeup
  //  0xFA,                           // max power: 500ma
  0x31,                           // max power: 98ma
  // interface descriptor: BOT mass storage
  k_usb_ifcdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_interface,       // descriptor type: interface
  0,                              // interface number
  0,                              // alternate interface
  2,                              // number of endpoints
  0x08,                           // usb interface class: mass storage
  0x06,                           // usb interface subclass: scsi
  0x50,                           // interface protocol: BOT (bulk only transport)
  0x00,                           // interface string index
  // endpoint descriptor: bulk out
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x02,                           // endpoint 2, out
  0x02,                           // bulk
  k_fs_maxpktsz,                  // max packet size lo
  0x00,                           // max packet size hi
  0x01,                           // polling interval
  // endpoint descriptor: bulk in
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x82,                           // endpoint 2, in
  0x02,                           // bulk
  k_fs_maxpktsz,                  // max packet size lo
  0x00,                           // max packet size hi
  0x00,                           // polling interval
  // dfu functional descriptor
  k_dfu_funcdscrsz,               // length of descriptor in bytes
  k_dfu_dscr_typ_functional,      // dfu functional descriptor type
  0x07,                           // manifest, upload, dnload tolerant
  _l(k_dfu_detach_timeout),       // detach timeout lo
  _h(k_dfu_detach_timeout),       // detach timeout hi
  _l(k_dfu_max_xfer_sz),          // max transfer size lo
  _h(k_dfu_max_xfer_sz)           // max transfer size hi
};
//------------------------------------------------------------------------------
// high speed configuration descriptor
uint8 code g_hs_cfg_dscr[] =
{
  k_usb_cfgdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_config,          // descriptor type: configuration
  k_usb_cfgdscrsz +
  k_usb_ifcdscrsz +
  k_usb_ndpdscrsz +
  #ifdef k_append_dfu_dscr
  k_usb_ndpdscrsz +
  k_dfu_funcdscrsz,               // total length lo
  #else
  k_usb_ndpdscrsz,                // total length lo
  #endif
  0,                              // total length hi
  1,                              // number of interfaces
  0x01,                           // configuration value
  0x00,                           // index of string descriptor
  0x80,                           // attributes: bus powered, no remote wakeup
  //  0xFA,                           // max power: 500ma
  0x31,                           // max power: 98ma
  // interface descriptor: BOT mass storage
  k_usb_ifcdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_interface,       // descriptor type: interface
  0,                              // interface number
  0,                              // alternate interface
  2,                              // number of endpoints
  0x08,                           // usb interface class: mass storage
  0x06,                           // usb interface subclass: scsi
  0x50,                           // interface protocol: BOT (bulk only transport)
  0x00,                           // interface string index
  // endpoint descriptor: bulk out
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x02,                           // endpoint 2, out
  0x02,                           // bulk
  _l(k_hs_maxpktsz),              // max packet size lo
  _h(k_hs_maxpktsz),              // max packet size hi
  0x01,                           // polling interval
  // endpoint descriptor: bulk in
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x82,                           // endpoint 2, in
  0x02,                           // bulk
  _l(k_hs_maxpktsz),              // max packet size lo
  _h(k_hs_maxpktsz),              // max packet size hi
  0x00,                           // polling interval
  // dfu functional descriptor
  k_dfu_funcdscrsz,               // length of descriptor in bytes
  k_dfu_dscr_typ_functional,      // dfu functional descriptor type
  0x07,                           // manifest, upload, dnload tolerant
  _l(k_dfu_detach_timeout),       // detach timeout lo
  _h(k_dfu_detach_timeout),       // detach timeout hi
  _l(k_dfu_max_xfer_sz),          // max transfer size lo
  _h(k_dfu_max_xfer_sz)           // max transfer size hi
};
//------------------------------------------------------------------------------
// other speed configuration descriptor
//------------------------------------------------------------------------------
// full speed other speed configuration descriptor
uint8 code g_fs_oscfg_dscr[] =
{
  k_usb_cfgdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_osconfig,        // descriptor type: other speed configuration
  k_usb_cfgdscrsz +
  k_usb_ifcdscrsz +
  k_usb_ndpdscrsz +
  #ifdef k_append_dfu_dscr
  k_usb_ndpdscrsz +
  k_dfu_funcdscrsz,               // total length lo
  #else
  k_usb_ndpdscrsz,                // total length lo
  #endif
  0,                              // total length hi
  1,                              // number of interfaces
  0x01,                           // configuration value
  0x00,                           // index of string descriptor
  0x80,                           // attributes: bus powered, no remote wakeup
  //  0xFA,                           // max power: 500ma
  0x31,                           // max power: 98ma
  // interface descriptor: BOT mass storage
  k_usb_ifcdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_interface,       // descriptor type: interface
  0,                              // interface number
  0,                              // alternate interface
  2,                              // number of endpoints
  0x08,                           // usb interface class: mass storage
  0x06,                           // usb interface subclass: scsi
  0x50,                           // interface protocol: BOT (bulk only transport)
  0x00,                           // interface string index
  // endpoint descriptor: bulk out
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x02,                           // endpoint 2, out
  0x02,                           // bulk
  k_fs_maxpktsz,                  // max packet size lo
  0x00,                           // max packet size hi
  0x01,                           // polling interval
  // endpoint descriptor: bulk in
  k_usb_ndpdscrsz,                // length of descriptor in bytes
  0x05,                           // descriptor type: endpoint
  0x82,                           // endpoint 2, in
  0x02,                           // bulk
  k_fs_maxpktsz,                  // max packet size lo
  0x00,                           // max packet size hi
  0x00,                           // polling interval
  // dfu functional descriptor
  k_dfu_funcdscrsz,               // length of descriptor in bytes
  k_dfu_dscr_typ_functional,      // dfu functional descriptor type
  0x07,                           // manifest, upload, dnload tolerant
  _l(k_dfu_detach_timeout),       // detach timeout lo
  _h(k_dfu_detach_timeout),       // detach timeout hi
  _l(k_dfu_max_xfer_sz),          // max transfer size lo
  _h(k_dfu_max_xfer_sz)           // max transfer size hi
};
//------------------------------------------------------------------------------
// high speed other speed configuration descriptor
uint8 code g_hs_oscfg_dscr[] =
{
  k_usb_cfgdscrsz,                // length of descriptor in bytes
  k_usb_dscr_typ_osconfig,        // descriptor type: other speed configuration
  k_usb_cfgdscrsz +
  k_usb_ifcdscrsz +
  k_usb_ndpdscrsz +
  #ifdef k_append_dfu_dscr
  k_usb_ndpdscrsz +
  k_dfu_funcdscrsz,               // total length lo
  #else
  k_usb_ndpdscrsz,                // total length lo
  #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -