RTEMS USB development roadmap

I meet a problem when develop the USB, When the interrupt vector 17 occur, The code stuck and can't go to the ISR.
I discuss with my mentor, try many ways, but still can't figure out the problem.

So we start from head, and port USB one step by step.

The roadmap of USB driver is list below:


Port USB drivers:
   The idea is port driver from FreeBSD to RTEMS-libbsd, CPU AM3358 implements the USB2.0 OTG dual port module and PHY for interfacing to USB as a peripheral or host. So MUSB is the driver for OTG.
2017-06-09 17-36-40屏幕截图.png
   Detail point listed below:
The AM335x datasheet Revison is Rev.M
  • MUSB driver:
  • File to port: am335x_musb.c  from FreeBSD/sys/arm/ti/am335x
  • Important issue need noted: irq and ISR, mount way, resources allocate.
  • Important file: musb_otg.c
  • Responsibility of the driver: Datasheet 16.2, 16.4.3

  • USBSS driver:
    • File to port: am335x_usbss.c  from FreeBSD/sys/arm/ti/am335x
    • Responsibility of the driver: Datasheet 16.4.1

  •  PRCM(Power control module) driver:
    • File to port: am335x_prcm.c   from FreeBSD/sys/arm/ti/am335x
    • Role: Provide power control to AM335x USB

  • UMASS driver(Already ported):
    • Role: Provide storage device protocol.

Test USB driver:
     First of all,  I intend to use U disk to test the USB driver, the test application is usb01 from RTEMS-libbsd/testsuite/usb01.
    Then maybe i will test the uhub and other usb device.




How to generate image file and dd to SD card

Developed the I2C driver for Beaglebone Black BSP

Compiling RTEMS for Beaglebone Black BSP