S3C2440的平台,WINCE5.0,在USB HCD 驱动文件中2440_ohci.c中,有没有熟悉这个驱动的朋友,我想知道在这个驱动中哪个地方或者说哪个函数中将S3C2440的USB寄存器物理地址转换为虚拟地址并配置的,这个里面的代码我反复看过,但是因为以前没搞过USB,所以确实不知道。。。
自问自答,哈哈,在一个叫DDKReg_GetWindowInfo的函数,应该是这个里面,我在仔细看看,看来还是要靠串口啊!
DDKReg_GetWindowInfo和函数DDKReg_GetIsrInfo都不开源,USB寄存器地址是如何传递过去的呢?不知道,继续努力。。。。
老大,我研究这个问题很长时间了,你为什么不问我呢?哈哈
看注册表 和GetRegistryPhysicalMemSize()、ConfigureOHCICard()函数
;================= USB =================
; @CESYSGEN IF CE_MODULES_USBD
IF BSP_NOUSB !
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]
"InterfaceType"=dword:0 ; Internal
"Prefix"="HCD"
"Dll"="ohci2.dll"
"Index"=dword:1
;"Order"=dword:1 ;2
"Order"=dword:25
"Irq"=dword:1a ; 26
"SysIntr"=dword:11 ; (SYSINTR_FIRMWARE+1)
"MemBase"=dword:49000000
"MemLen"=dword:1000
"UseExistingSettings"=dword:0
"HcdCapability"=dword:4 ;HCD_SUSPEND_ON_REQUEST
ENDIF
不知道我的回答能不能满足你的要求?哈哈(忘记说了,我用的是三星的平台)
兄弟一语惊醒梦中人啊,原来物理地址是通过注册表传递进来的,DDKReg_GetWindowInfo和函数DDKReg_GetIsrInfo正是从注册表获得信息,继续往下看,串口确认哈,分都给你啦,帖子暂时不揭,有问题还想交流哈,先看,有问题再说,哈哈,分不够,我可以追加的,放心,哈哈,太感谢啦 !!
Seven_zhangxw :你有没有看到在USB HCD驱动中那里有设置USB中断边沿触发或者电平触发的代码,我只看到//Setup ISR handler这里有些代码,不过也只是设置了系统中断地址,和中断屏蔽地址之类,因为上次论坛里面说我的问题,网友解答如下:所以我一直都在找HCD驱动中设置中断的位置,不知道你知不知道?或者是USB驱动比较特别,我理解有问题?先谢了
问:环境:S3C2440+WINCE5.0 如题,上电前,把U盘插在S3C2440板上,进入系统只有不能识别U盘,但是上电之后将没有识别的U盘拔下,重新插上,系统立即识别,我感觉应该是驱动的问题,可能在初始化的时候未做检测....不知道有谁碰到过同样的问题.大家说说,准备看看WINCE下的USB驱动,看看是怎么回事!
答:驱动是识别一个IO口的沿(上升或下降),如果先插U盘再上电,那么加载驱动时,此IO口已经是固定电平。而有插拔动作的话,就会产生沿。 修改方式:初始化时判断一下IO的电平。其他时间靠沿触发中断。
引用: 引用 6 楼 fan227 的回复:
Seven_zhangxw :你有没有看到在USB HCD驱动中那里有设置USB中断边沿触发或者电平触发的代码,我只看到//Setup ISR handler这里有些代码,不过也只是设置了系统中断地址,和中断屏蔽地址之类,因为上次论坛里面说我的问题,网友解答如下:所以我一直都在找HCD驱动中设置中断的位置,不知道你知不知道?或者是USB驱动比较特别,我理解有问题?先谢了
问:环境:S3C2440+WINCE5.0 如题,上电前,把U盘插在S3C2440板上,进入系统只有…
楼主这段话我没有看明白,是想问问题,还是把有用的东西贴出来让大家看的?感觉像是自问自答啊,呵呵
我想问的是:USB HCD驱动中那里有设置USB中断边沿触发或者电平触发的代码,我没有找到?只看到了//Setup ISR handler相关的一些东西,但是没有看到如何设置USB中断触发方式的代码位置?