器件型号:EVMK2H
工具/软件:TI-RTOS
您好!
我 有一个 K2EVM-HK 并在其中使用 TI RTOS。 我正在设备模式下处理 USB 驱动程序。 该板使用 dwc3 USB 控制器。
我已经为 USB_INT00注册了一个 ISR (USB 事件环0中断)。 当我将电路板连接到主机并获得适当的事件时、ISR 会被触发。 处理完所有事件后、即使没有事件、也会连续调用 ISR。
我读取 IRQ_STATUS_MAIN 寄存器并得到值为0、表示没有挂起的事件。 我还检查了 GEVNTCOUNT 寄存器、在这里、我再次看到该值为0、表示没有事件。
下面是我的 ISR 的代码流
/*禁用中断*/
HW_WR_REG32 (IRQ_ENABLE_CLR_MAIN (0)、0x1U);
/*读取主中断状态的值*/
uint32_t regVal = HW_RD_REG32 (IRQ_STATUS_MAIN (0x0U));
/*调用设备中断处理程序*/
USBDwcDcdIntrHandler();
/*清除发生的中断*/
HW_WR_REG32 (IRQ_STATUS_MAIN (0x0U)、regVal);
/*再次启用 IRQ */
HW_WR_REG32 (IRQ_ENABLE_SET_MAIN (0)、0x1U);
/* IRQ 结束*/
HW_WR_REG32 (IRQ_EOI_MAIN、0x1U);
我已在 K2G 板上以及作为 PDK 一部分的 USB 驱动程序上验证了这种行为。