usb_descriptors.c
uint8_t const* tud_descriptor_other_speed_configuration_cb(uint8_t index)
{
  (void) index; // for multiple configurations

  // other speed config is basically configuration with type = OHER_SPEED_CONFIG
  memcpy(desc_other_speed_config, desc_configuration, CONFIG_TOTAL_LEN);
  desc_other_speed_config[1] = TUSB_DESC_OTHER_SPEED_CONFIG;

  // this example use the same configuration for both high and full speed mode
  return desc_other_speed_config;
}
// Invoked when received GET OTHER SEED CONFIGURATION DESCRIPTOR request
// Application return pointer to descriptor, whose contents must exist long enough for transfer to complete
// Configuration descriptor in the other speed e.g if high speed then this is for full speed and vice versa
Invoked when received GET OTHER SEED CONFIGURATION DESCRIPTOR request
Application return pointer to descriptor, whose contents must exist long enough for transfer to complete
Configuration descriptor in the other speed e.g if high speed then this is for full speed and vice versa
Invoked when received GET OTHER SEED CONFIGURATION DESCRIPTOR request Application return pointer to descriptor whose contents must exist long enough for transfer to complete Configuration descriptor in the other speed e . g if high speed then this is for full speed and vice versa
uint8_t const* tud_descriptor_other_speed_configuration_cb(uint8_t index)
{
  (void) index; 
  memcpy(desc_other_speed_config, desc_configuration, CONFIG_TOTAL_LEN);
  desc_other_speed_config[1] = TUSB_DESC_OTHER_SPEED_CONFIG;
  return desc_other_speed_config;
}
uint8_t const * tud_descriptor_other_speed_configuration_cb ( uint8_t index ) { ( void ) index ; memcpy ( desc_other_speed_config , desc_configuration , CONFIG_TOTAL_LEN ) ; desc_other_speed_config [ 1 ] = TUSB_DESC_OTHER_SPEED_CONFIG ; return desc_other_speed_config ; }
Invoked when received GET OTHER SEED CONFIGURATION DESCRIPTOR request
Application return pointer to descriptor, whose contents must exist long enough for transfer to complete
Configuration descriptor in the other speed e.g if high speed then this is for full speed and vice versa
Invoked when received GET OTHER SEED CONFIGURATION DESCRIPTOR request Application return pointer to descriptor whose contents must exist long enough for transfer to complete Configuration descriptor in the other speed e . g if high speed then this is for full speed and vice versa
// for multiple configurations // other speed config is basically configuration with type = OHER_SPEED_CONFIG // this example use the same configuration for both high and full speed mode