rtt更新

This commit is contained in:
2025-01-18 13:25:25 +08:00
parent c6a7554b51
commit d6009a0773
726 changed files with 103376 additions and 6270 deletions

View File

@@ -273,7 +273,7 @@ int usb_dc_init(uint8_t busid)
}
/* Enable USB interrupts */
HWREGB(USB_BASE + MUSB_IE_OFFSET) = USB_IE_RESET;
HWREGB(USB_BASE + MUSB_IE_OFFSET) = USB_IE_RESET | USB_IE_SUSPND | USB_IE_RESUME;
HWREGH(USB_BASE + MUSB_TXIE_OFFSET) = USB_TXIE_EP0;
HWREGH(USB_BASE + MUSB_RXIE_OFFSET) = 0;
@@ -296,6 +296,14 @@ int usbd_set_address(uint8_t busid, const uint8_t addr)
return 0;
}
int usbd_set_remote_wakeup(uint8_t busid)
{
HWREGB(USB_BASE + MUSB_POWER_OFFSET) |= USB_POWER_RESUME;
usbd_musb_delay_ms(10);
HWREGB(USB_BASE + MUSB_POWER_OFFSET) &= ~USB_POWER_RESUME;
return 0;
}
uint8_t usbd_get_port_speed(uint8_t busid)
{
uint8_t speed = USB_SPEED_UNKNOWN;
@@ -501,6 +509,26 @@ int usbd_ep_clear_stall(uint8_t busid, const uint8_t ep)
int usbd_ep_is_stalled(uint8_t busid, const uint8_t ep, uint8_t *stalled)
{
uint8_t ep_idx = USB_EP_GET_IDX(ep);
uint8_t old_ep_idx;
old_ep_idx = musb_get_active_ep();
musb_set_active_ep(ep_idx);
if (USB_EP_DIR_IS_OUT(ep)) {
if(HWREGB(USB_BASE + MUSB_IND_RXCSRL_OFFSET) & USB_RXCSRL1_STALL) {
*stalled = 1;
} else {
*stalled = 0;
}
} else {
if(HWREGB(USB_BASE + MUSB_IND_TXCSRL_OFFSET) & USB_TXCSRL1_STALL) {
*stalled = 1;
} else {
*stalled = 0;
}
}
musb_set_active_ep(old_ep_idx);
return 0;
}
@@ -706,9 +734,11 @@ void USBD_IRQHandler(uint8_t busid)
}
if (is & USB_IS_RESUME) {
usbd_event_resume_handler(0);
}
if (is & USB_IS_SUSPEND) {
usbd_event_suspend_handler(0);
}
txis &= HWREGH(USB_BASE + MUSB_TXIE_OFFSET);

View File

@@ -277,6 +277,11 @@ void usb_dc_low_level_deinit(void)
sys_drv_dev_clk_pwr_up(CLK_PWR_ID_USB_1, CLK_PWR_CTRL_PWR_DOWN);
}
void usbd_musb_delay_ms(uint8_t ms)
{
/* implement later */
}
extern void USBH_IRQHandler(uint8_t busid);
void USBH_IRQ(void)

View File

@@ -50,4 +50,9 @@ uint8_t usbh_get_musb_fifo_cfg(struct musb_fifo_cfg **cfg)
uint32_t usb_get_musb_ram_size(void)
{
return 4096;
}
}
void usbd_musb_delay_ms(uint8_t ms)
{
/* implement later */
}

View File

@@ -56,4 +56,9 @@ uint8_t usbh_get_musb_fifo_cfg(struct musb_fifo_cfg **cfg)
uint32_t usb_get_musb_ram_size(void)
{
return 8192;
}
}
void usbd_musb_delay_ms(uint8_t ms)
{
/* implement later */
}

View File

@@ -475,10 +475,12 @@ static void musb_pipe_free(struct musb_pipe *pipe)
__WEAK void usb_hc_low_level_init(struct usbh_bus *bus)
{
(void)bus;
}
__WEAK void usb_hc_low_level_deinit(struct usbh_bus *bus)
{
(void)bus;
}
int usb_hc_init(struct usbh_bus *bus)
@@ -653,6 +655,7 @@ int usbh_roothub_control(struct usbh_bus *bus, struct usb_setup_packet *setup, u
}
}
status |= (1 << HUB_PORT_FEATURE_POWER);
memcpy(buf, &status, 4);
break;
default:

View File

@@ -3882,5 +3882,6 @@ struct musb_fifo_cfg {
uint8_t usbd_get_musb_fifo_cfg(struct musb_fifo_cfg **cfg);
uint8_t usbh_get_musb_fifo_cfg(struct musb_fifo_cfg **cfg);
uint32_t usb_get_musb_ram_size(void);
void usbd_musb_delay_ms(uint8_t ms);
#endif