我正在使用Linux 3.8。13+
Board BeagleBone Black
正在写入Musb设备驱动器(类型B)
>>>我将在Linux内核中单独编译驱动程序
>>我注释了driver/USB/Kconfig文件#source "drivers/USB/musb/Kconfig"
>>和DRIVER/USB/Makefile #obj-$(config_USB_MUSB_HDRC) += musb/
#时钟配置/在智能模式下启用时钟
寄存器的初始化如下所示
#控制模块寄存器
CM_Per_USB0_CLKCTRL.MODULEMODE = 0x1;
轮询至(CM_per_USB0_CLKCTRL.IDLEST ==0);
CM_CLKDCOLDO_DPLL_Per.DPLL_CLKDCOLDO_GATE _CTRL = 1;
ctrlr.rst = 1; //这是Mentor核心寄存器位
#USBSS,模块的软件重置。
#Write 1=启动软件重置。
sysconfig.soft_reset= 1;
轮询至sysconfig.soft_reset ==0);
##USB0, 模块的软件重置。
USB0CTRLR.soft_reset = 1;
轮询至(USB0CTRLR.soft_reset == 0);
#USB中断启用
USB0CTRLR.UINT = 0;
USBMODE0.IDDIG_MUX = 1;
USBMODE0.IDDIG = 1;
DEVCTL.session = 1;
#PHY模块
USB_CTRL0.cm_Pwrdn = 0;//正常模式
USB_CTRL0.OTG Pwrdn = 0;
USB_CTRL0.otgvdet_en = 1;
USB_CTRL0.otgsessenden = 1;
#USB0UTMI
USB0UTMI.FSSE0EXT = 1;
USB0UTMI.VBUSVLDEXTSEL = 1;
USB0UTMI.VBUSVLDEXT = 1;
#Mentor核心初始化
INTRUSBE=0XF7;
INTRTXE = 0xFFFF;
INTRRXE = 0xFFFF;
RXMAP = 64;
TXMAP = 64;
INDEXD.EPSEL = 0;
INTCLRR,TX,= 1;
INTCLRR,RX=1;
INTCLRR.USB = 1;
#Transparent DMA Transfer Setup
USB0CTRLR.RNDIS = 0;
USB0TXMODE = 0;
USB0RXMODE = 0;
#CPPI DMA Scheduler Initialization
DMA_Sched_CTRL.ENable_FLD = 1;
无法写入控制模块寄存器,中断未生成。
请任何人都能帮我解决这个问题,