remove intf malloc

This commit is contained in:
sakumisu
2022-10-20 21:22:08 +08:00
parent 731f206254
commit dca8b4cfed
36 changed files with 178 additions and 247 deletions

View File

@@ -173,11 +173,14 @@ static struct usbd_endpoint audio_in_ep = {
.ep_addr = AUDIO_IN_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
void audio_init()
{
usbd_desc_register(audio_descriptor);
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_init_intf(&intf0));
usbd_add_interface(usbd_audio_init_intf(&intf1));
usbd_add_endpoint(&audio_in_ep);
usbd_audio_add_entity(0x02, AUDIO_CONTROL_FEATURE_UNIT);

View File

@@ -193,12 +193,16 @@ static struct usbd_endpoint audio_out_ep = {
.ep_addr = AUDIO_OUT_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_interface intf2;
void audio_init()
{
usbd_desc_register(audio_descriptor);
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_init_intf(&intf0));
usbd_add_interface(usbd_audio_init_intf(&intf1));
usbd_add_interface(usbd_audio_init_intf(&intf2));
usbd_add_endpoint(&audio_in_ep);
usbd_add_endpoint(&audio_out_ep);

View File

@@ -174,11 +174,14 @@ static struct usbd_endpoint audio_in_ep = {
.ep_addr = AUDIO_IN_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
void audio_init()
{
usbd_desc_register(audio_descriptor);
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_init_intf(&intf0));
usbd_add_interface(usbd_audio_init_intf(&intf1));
usbd_add_endpoint(&audio_in_ep);
usbd_audio_add_entity(0x01, AUDIO_CONTROL_CLOCK_SOURCE);

View File

@@ -262,12 +262,16 @@ static struct usbd_endpoint audio_in_ep = {
.ep_addr = AUDIO_IN_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_interface intf2;
void audio_init()
{
usbd_desc_register(audio_descriptor);
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_init_intf(&intf0));
usbd_add_interface(usbd_audio_init_intf(&intf1));
usbd_add_interface(usbd_audio_init_intf(&intf2));
usbd_add_endpoint(&audio_in_ep);
usbd_add_endpoint(&audio_out_ep);

View File

@@ -182,11 +182,14 @@ static struct usbd_endpoint audio_out_ep = {
.ep_addr = AUDIO_OUT_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
void audio_init()
{
usbd_desc_register(audio_descriptor);
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_alloc_intf());
usbd_add_interface(usbd_audio_init_intf(&intf0));
usbd_add_interface(usbd_audio_init_intf(&intf1));
usbd_add_endpoint(&audio_out_ep);
usbd_audio_add_entity(0x01, AUDIO_CONTROL_CLOCK_SOURCE);

View File

@@ -291,25 +291,23 @@ struct usbd_endpoint cdc_in_ep = {
.ep_cb = usbd_cdc_acm_bulk_in
};
/* function ------------------------------------------------------------------*/
/**
* @brief msc ram init
* @pre none
* @param[in] none
* @retval none
*/
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_interface intf2;
struct usbd_interface intf3;
void cdc_acm_hid_msc_descriptor_init(void)
{
usbd_desc_register(cdc_acm_hid_msc_descriptor);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf0));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf1));
usbd_add_endpoint(&cdc_out_ep);
usbd_add_endpoint(&cdc_in_ep);
usbd_add_interface(usbd_msc_alloc_intf(MSC_OUT_EP, MSC_IN_EP));
usbd_add_interface(usbd_msc_init_intf(&intf2, MSC_OUT_EP, MSC_IN_EP));
usbd_add_interface(usbd_hid_alloc_intf(hid_mouse_report_desc, HID_MOUSE_REPORT_DESC_SIZE));
usbd_add_interface(usbd_hid_init_intf(&intf3, hid_mouse_report_desc, HID_MOUSE_REPORT_DESC_SIZE));
usbd_add_endpoint(&hid_in_ep);
/*!< init mouse report data */

View File

@@ -145,15 +145,18 @@ struct usbd_endpoint cdc_in_ep = {
.ep_cb = usbd_cdc_acm_bulk_in
};
/* function ------------------------------------------------------------------*/
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_interface intf2;
void cdc_acm_msc_init(void)
{
usbd_desc_register(cdc_msc_descriptor);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf0));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf1));
usbd_add_endpoint(&cdc_out_ep);
usbd_add_endpoint(&cdc_in_ep);
usbd_add_interface(usbd_msc_alloc_intf(MSC_OUT_EP, MSC_IN_EP));
usbd_add_interface(usbd_msc_init_intf(&intf2, MSC_OUT_EP, MSC_IN_EP));
usbd_initialize();
}

View File

@@ -187,28 +187,36 @@ struct usbd_endpoint cdc_in_ep4 = {
.ep_cb = usbd_cdc_acm_bulk_in
};
/* function ------------------------------------------------------------------*/
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_interface intf2;
struct usbd_interface intf3;
struct usbd_interface intf4;
struct usbd_interface intf5;
struct usbd_interface intf6;
struct usbd_interface intf7;
void cdc_acm_multi_init(void)
{
usbd_desc_register(cdc_descriptor);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf0));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf1));
usbd_add_endpoint(&cdc_out_ep1);
usbd_add_endpoint(&cdc_in_ep1);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf2));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf3));
usbd_add_endpoint(&cdc_out_ep2);
usbd_add_endpoint(&cdc_in_ep2);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf4));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf5));
usbd_add_endpoint(&cdc_out_ep3);
usbd_add_endpoint(&cdc_in_ep3);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf6));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf7));
usbd_add_endpoint(&cdc_out_ep4);
usbd_add_endpoint(&cdc_in_ep4);

View File

@@ -144,12 +144,14 @@ struct usbd_endpoint cdc_in_ep = {
.ep_cb = usbd_cdc_acm_bulk_in
};
/* function ------------------------------------------------------------------*/
struct usbd_interface intf0;
struct usbd_interface intf1;
void cdc_acm_init(void)
{
usbd_desc_register(cdc_descriptor);
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf0));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf1));
usbd_add_endpoint(&cdc_out_ep);
usbd_add_endpoint(&cdc_in_ep);
usbd_initialize();

View File

@@ -161,14 +161,16 @@ void usbd_configure_done_callback(void)
#endif /* RT_USING_LWIP */
/* function ------------------------------------------------------------------*/
struct usbd_interface intf0;
struct usbd_interface intf1;
void cdc_rndis_init(void)
{
#ifdef RT_USING_LWIP
rt_usbd_rndis_init();
#endif
usbd_desc_register(cdc_descriptor);
usbd_add_interface(usbd_rndis_alloc_intf(CDC_OUT_EP, CDC_IN_EP, CDC_INT_EP, mac));
usbd_add_interface(usbd_rndis_alloc_intf(CDC_OUT_EP, CDC_IN_EP, CDC_INT_EP, mac));
usbd_add_interface(usbd_rndis_init_intf(&intf0, CDC_OUT_EP, CDC_IN_EP, CDC_INT_EP, mac));
usbd_add_interface(usbd_rndis_init_intf(&intf1, CDC_OUT_EP, CDC_IN_EP, CDC_INT_EP, mac));
usbd_initialize();
}

View File

@@ -261,6 +261,8 @@ static struct usbd_endpoint dap_in_ep = {
};
struct usbd_interface dap_interface;
struct usbd_interface intf1;
struct usbd_interface intf2;
void daplink_init(void)
{
@@ -273,8 +275,8 @@ void daplink_init(void)
usbd_add_endpoint(&dap_in_ep);
/*!< cdc acm */
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_alloc_intf());
usbd_add_interface(usbd_cdc_acm_init_intf(&intf1));
usbd_add_interface(usbd_cdc_acm_init_intf(&intf2));
usbd_add_endpoint(&cdc_out_ep);
usbd_add_endpoint(&cdc_in_ep);

View File

@@ -1,9 +1,9 @@
#include "usbd_core.h"
#include "usbd_dfu.h"
#define USBD_VID 0x0483
#define USBD_PID 0xDF11
#define USBD_MAX_POWER 100
#define USBD_VID 0x0483
#define USBD_PID 0xDF11
#define USBD_MAX_POWER 100
#define USBD_LANGID_STRING 1033
#define FLASH_DESC_STR "@Internal Flash /0x08000000/16*001Ka,112*01Kg"
@@ -134,23 +134,19 @@ const uint8_t dfu_flash_descriptor[] = {
0x01,
0x00,
#endif
0x00};
0x00
};
void usbd_configure_done_callback(void)
{
/* no out ep, do nothing */
}
/* function ------------------------------------------------------------------*/
/**
* @brief dfu flash init
* @pre none
* @param[in] none
* @retval none
*/
struct usbd_interface intf0;
void dfu_flash_init(void)
{
usbd_desc_register(dfu_flash_descriptor);
usbd_add_interface(usbd_dfu_alloc_intf());
usbd_add_interface(usbd_dfu_init_intf(&intf0));
usbd_initialize();
}

View File

@@ -194,17 +194,12 @@ static struct usbd_endpoint custom_out_ep = {
.ep_addr = HIDRAW_OUT_EP
};
/* function ------------------------------------------------------------------*/
/**
* @brief hid custom init
* @pre none
* @param[in] none
* @retval none
*/
struct usbd_interface intf0;
void hid_custom_keyboard_init(void)
{
usbd_desc_register(hid_descriptor);
usbd_add_interface(usbd_hid_alloc_intf(hid_custom_report_desc, HID_CUSTOM_REPORT_DESC_SIZE));
usbd_add_interface(usbd_hid_init_intf(&intf0, hid_custom_report_desc, HID_CUSTOM_REPORT_DESC_SIZE));
usbd_add_endpoint(&custom_in_ep);
usbd_add_endpoint(&custom_out_ep);

View File

@@ -193,10 +193,12 @@ static struct usbd_endpoint hid_in_ep = {
.ep_addr = HID_INT_EP
};
struct usbd_interface intf0;
void hid_keyboard_init(void)
{
usbd_desc_register(hid_descriptor);
usbd_add_interface(usbd_hid_alloc_intf(hid_keyboard_report_desc, HID_KEYBOARD_REPORT_DESC_SIZE));
usbd_add_interface(usbd_hid_init_intf(&intf0, hid_keyboard_report_desc, HID_KEYBOARD_REPORT_DESC_SIZE));
usbd_add_endpoint(&hid_in_ep);
usbd_initialize();

View File

@@ -211,17 +211,12 @@ static struct usbd_endpoint hid_in_ep = {
.ep_addr = HID_INT_EP
};
/* function ------------------------------------------------------------------*/
/**
* @brief hid mouse init
* @pre none
* @param[in] none
* @retval none
*/
struct usbd_interface intf0;
void hid_mouse_init(void)
{
usbd_desc_register(hid_descriptor);
usbd_add_interface(usbd_hid_alloc_intf(hid_mouse_report_desc, HID_MOUSE_REPORT_DESC_SIZE));
usbd_add_interface(usbd_hid_init_intf(&intf0, hid_mouse_report_desc, HID_MOUSE_REPORT_DESC_SIZE));
usbd_add_endpoint(&hid_in_ep);
usbd_initialize();

View File

@@ -138,8 +138,8 @@ void usbd_midi_bulk_in(uint8_t ep, uint32_t nbytes)
{
}
struct usbd_interface midi_cmd_intf;
struct usbd_interface midi_data_intf;
struct usbd_interface intf0;
struct usbd_interface intf1;
struct usbd_endpoint midi_out_ep = {
.ep_addr = MIDI_OUT_EP,
@@ -154,8 +154,8 @@ struct usbd_endpoint midi_in_ep = {
void midi_init(void)
{
usbd_desc_register(midi_descriptor);
usbd_add_interface(&midi_cmd_intf);
usbd_add_interface(&midi_data_intf);
usbd_add_interface(&intf0);
usbd_add_interface(&intf1);
usbd_add_endpoint(&midi_out_ep);
usbd_add_endpoint(&midi_in_ep);

View File

@@ -123,17 +123,12 @@ int usbd_msc_sector_write(uint32_t sector, uint8_t *buffer, uint32_t length)
return 0;
}
/* function ------------------------------------------------------------------*/
/**
* @brief msc ram init
* @pre none
* @param[in] none
* @retval none
*/
struct usbd_interface intf0;
void msc_ram_init(void)
{
usbd_desc_register(msc_ram_descriptor);
usbd_add_interface(usbd_msc_alloc_intf(MSC_OUT_EP, MSC_IN_EP));
usbd_add_interface(usbd_msc_init_intf(&intf0, MSC_OUT_EP, MSC_IN_EP));
usbd_initialize();
}

View File

@@ -173,11 +173,14 @@ static struct usbd_endpoint video_in_ep = {
.ep_addr = VIDEO_IN_EP
};
struct usbd_interface intf0;
struct usbd_interface intf1;
void video_init()
{
usbd_desc_register(video_descriptor);
usbd_add_interface(usbd_video_alloc_intf(INTERVAL, MAX_FRAME_SIZE, MAX_PAYLOAD_SIZE));
usbd_add_interface(usbd_video_alloc_intf(INTERVAL, MAX_FRAME_SIZE, MAX_PAYLOAD_SIZE));
usbd_add_interface(usbd_video_init_intf(&intf0, INTERVAL, MAX_FRAME_SIZE, MAX_PAYLOAD_SIZE));
usbd_add_interface(usbd_video_init_intf(&intf1, INTERVAL, MAX_FRAME_SIZE, MAX_PAYLOAD_SIZE));
usbd_add_endpoint(&video_in_ep);
usbd_initialize();

View File

@@ -206,8 +206,6 @@ void usbd_winusb_in(uint8_t ep, uint32_t nbytes)
{
}
struct usbd_interface winusb_intf;
struct usbd_endpoint winusb_out_ep = {
.ep_addr = WINUSB_OUT_EP,
.ep_cb = usbd_winusb_out
@@ -218,16 +216,15 @@ struct usbd_endpoint winusb_in_ep = {
.ep_cb = usbd_winusb_in
};
struct usbd_interface intf0;
void daplink_winusb_init(void)
{
usbd_desc_register(winusb_descriptor);
usbd_msosv1_desc_register(&msosv1_desc);
usbd_add_interface(&winusb_intf);
usbd_add_interface(&intf0);
usbd_add_endpoint(&winusb_out_ep);
usbd_add_endpoint(&winusb_in_ep);
usbd_initialize();
/* setup first out ep read transfer */
usbd_ep_start_read(WINUSB_OUT_EP, read_buffer, 2048);
}