drv_tinyusb.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2021 hpmicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #include <tusb.h>
  8. #include "board.h"
  9. extern void tud_descriptor_set_serial(char *serial_number, uint8_t length);
  10. #ifdef PKG_TINYUSB_DEVICE_ENABLE
  11. TU_ATTR_WEAK void generate_serial_number(void)
  12. {
  13. char serial_number[32] = {"00001"};
  14. tud_descriptor_set_serial(serial_number, sizeof(serial_number));
  15. }
  16. #endif
  17. TU_ATTR_WEAK int tusb_board_init(void)
  18. {
  19. #ifdef PKG_TINYUSB_DEVICE_ENABLE
  20. generate_serial_number();
  21. #endif
  22. return 0;
  23. }
  24. TU_ATTR_WEAK void isr_usb0(void)
  25. {
  26. rt_interrupt_enter();
  27. #if defined(PKG_TINYUSB_DEVICE_ENABLE) && (PKG_TINYUSB_DEVICE_RHPORT_NUM == 0)
  28. dcd_int_handler(0);
  29. #endif
  30. #if defined(PKG_TINYUSB_HOST_ENABLE) && (PKG_TINYUSB_HOST_RHPORT_NUM == 0)
  31. hcd_int_handler(0);
  32. #endif
  33. rt_interrupt_leave();
  34. }
  35. SDK_DECLARE_EXT_ISR_M(IRQn_USB0, isr_usb0)
  36. TU_ATTR_WEAK void isr_usb1(void)
  37. {
  38. rt_interrupt_enter();
  39. #if defined(PKG_TINYUSB_DEVICE_ENABLE) && (PKG_TINYUSB_DEVICE_RHPORT_NUM == 1)
  40. dcd_int_handler(1);
  41. #endif
  42. #if defined(PKG_TINYUSB_HOST_ENABLE) && (PKG_TINYUSB_HOST_RHPORT_NUM == 1)
  43. hcd_int_handler(1);
  44. #endif
  45. rt_interrupt_leave();
  46. }
  47. SDK_DECLARE_EXT_ISR_M(IRQn_USB1, isr_usb1)