S3C2440 Wince5.0 ActiveSync无法同步
使用同一个Eboot,开发板上下ce4.2的nk可以同步,说明硬件没问题
ce5.0如下配置
PB添加了以下组件
end user ActiveSync
shell Network end user
RAS/PPP
TAPI2.0 Unimodem
USB Fuction Seriel
USB Fuction Controller 驱动使用三星原版
注册表按一下设置
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SC2440USBFN]
"Dll"="sc2440usbfn.dll"
"Prefix"="UFN"
"Priority256"=dword:64
"IoBase"=dword:B1200000
"IoLen"=dword:1000 ; Use one page
"Irq"=dword:19
"BusIoctl"=dword:2a0048
"IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"=- ; erase previous default
"DefaultClientDriver"="Serial_Class"
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
"FriendlyName"=LOC_USBFN_SERIAL_NAME
"idVendor"=dword:0547
"Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
"idProduct"=dword:2720
"Product"=LOC_USBFN_SERIAL_PRODUCT
"Index"=dword:5
[HKEY_CURRENT_USER\ControlPanel\Comm]
"Cnct"="`USB"
#include "$(_TARGETPLATROOT)\Files\rasbook.reg" 建立了名为`USB的连接
USB Fuction Controller 驱动中的ISTMain函数
在启动时usb device中断响应了两次,之后再插拔USB一点反应都没有,PC端一直提示无法识别的USB设备
麻烦哪位高人在ce5.0使用USB Fuction Controller/client方式成功实现同步的
请给点提示,说明一下具体实现方法
或者把usb function controller驱动和注册表设置发到我邮箱
yangyong9608@163.com 感谢感谢!!
4.2和WinCE5.0的同步的驱动可能不一样,
很早以前在2410下也碰到类似的问题。
是不一样
4.2就是实现了一个usb转uart的驱动
5.0这个有了mdd pdd的架构了,先是function controller 之后才是 function client
昨天折腾了一天,现在发现启动时候那两个中断不插usb线也会触发,感觉还是function controller的驱动有问题,等待高人出现,paol_chao和gooogleman都去哪了?不做技术,自己创业去了?呵呵
对了,我把4.2的function驱动挪到5.0试了一下,中断用的静态映射
插入usb线会触发一次中断,之后就没动静了
拔出usb线没有中断触发
这是什么原因呢,4.2的nk在插入和拔出时都会有中断触发的,驱动是一样的,真是奇怪了
居然沉了,高手都去哪了?
返回USBDUIR_RESET是PC的问题,换了USB口就返回RX_INTR了
但是DMA部分还需要静态映射一下,估计今天能搞定4.2的驱动在5.0下用了
5.0带的function驱动还是不好使,谁有调好的发给兄弟吧,谢谢了
没人理啊,问题太低级?
5.0那个function controller驱动就是有问题,ep的中断都给clear了,居然没恢复,怪不得没中断呢
也不知道同事都是从哪找的驱动,午饭前再没人给我传驱动就只能自己动手改了,唉
完,看错了
EnableEndpointInterrupt提供使能中断的接口了
我还是仔细看看再回复吧,免得再丢人
5.0的BSP里面的IRQ-到-Sysintr 是动态申请的,所以,如果你还是用的4.2的OAL,那么这一部分就要更换了,要静态指定,
建议吧MDD的代码 copy到BSP下,然后打开所有的打印函数,自然知道哪里卡主了!
4.2移植到5.0的function驱动里
DMA传输的v_pDMAregs->rDCDST3一直是0,造成死循环了
我打印了所有的DMA3的寄存器,跟4.2的一模一样,就是DMA不传输数据,真是郁闷死了
有哪位遇到过类似问题吗?
被逼无奈放弃了DMA,直接用USB EP4的FIFO把数据给读取了,同步是同步上了,可就是纳闷,为啥DMA不好使呢,问了几个人,都没碰上过这样的事儿,我把寄存器设置贴上,麻烦各位给看看
USB的
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->EP4DTL=USBD_GLOBALS_BUF_SIZE&0xff;
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->EP4DTM=(USBD_GLOBALS_BUF_SIZE>>8)&0xff;
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->EP4DTH=(USBD_GLOBALS_BUF_SIZE>>16)&0x0f;
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->OCSR2=
*(BYTE *)&pHWHead->pUSBCtrlAddr->OCSR2 | (BYTE)EPO_AUTO_CLR /*| EPO_OUT_DMA_INT_MASK*/;
//AUTO_CLR(OUT_PKT_READY is cleared automatically), interrupt_masking.
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->EP4DU=0x01; //DMA transfer unit=1byte
*(volatile BYTE *)&pHWHead->pUSBCtrlAddr->EP4DC=UDMA_OUT_DMA_RUN|UDMA_DMA_MODE_EN;
DMA3的
v_pDMAregs->DISRCC3 = (1<<1)|(1<<0); //src=APB, srcAddr=fixed
v_pDMAregs->DISRC3 = REAL_PHYSICAL_ADDR_EP4_FIFO; //srcAddr=EP4_FIFO
v_pDMAregs->DIDSTC3 = (0<<1)|(0<<0); //dst=AHB(memory),increase,
#if (DRIVER_GLOBALS_PHYSICAL_MEMORY_START<0xA0000000 || DMA_BUFFER_BASE<0xA0000000)
GENERATE_ERROR
//The above two address should be non-cacheable area.
#endif
realPhysicalAddr_UsbdRxBuf = \
(ULONG)&((DRIVER_GLOBALS *)DRIVER_GLOBALS_PHYSICAL_MEMORY_START)->usbd.usbdRxBuf \
- DMA_BUFFER_BASE + DMA_PHYSICAL_BASE;
//USBDMSG( 1, (TEXT( "[USBD:RPA_URxBuf=%x]"),realPhysicalAddr_UsbdRxBuf) );
//Real physical address of usbdShMem->usbdRxBuf
if(bufIndex==0)
{
v_pDMAregs->DIDST3=realPhysicalAddr_UsbdRxBuf+0+bufOffset;
}
else
{
v_pDMAregs->DIDST3=realPhysicalAddr_UsbdRxBuf+(USBD_GLOBALS_BUF_SIZE/2)+bufOffset;
}
v_pDMAregs->DCON3=(USBD_GLOBALS_BUF_SIZE-bufOffset)|(1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(4<<24)|(1<<23)|(1<<22)|(0<<20);
//handshake,requestor=APB,CURR_TC int enable,unit transfer,
//single service,src=USBD,H/W request,no_autoreload,byte,CURR_TC
v_pDMAregs->DMASKTRIG3=(1<<1); //DMA 3 on
DMA3的寄存器的值打印出来都是跟4.2里面一样的配置,可就是DCDST3 DSTAT一直是0
REAL_PHYSICAL_ADDR_EP4_FIFO明明都有数据到了,DMA就是不拷贝,不用DMA直接读就正确了,郁闷啊
这份BSP放在我这两年了,一直没怎么改过,本来就想把function controller驱动加上,没想到整这么麻烦
周一开始调那个function controller驱动,那个驱动中断还没触发呢,唉~~
有高手路过给讲讲吧
菜鸟飘过,友情帮顶!
自己顶一把,DMA不工作的问题还是没有解决,盼望有人能参与
可以说你usb Function的问题,昨天我还在为这个苦恼呢?你找个好的bsp改下吧!我的现在好了!
xuefeng_baggio兄弟能否将你的function driver发到我邮箱呢?
yangyong9608@163.com,我的cpu是S3C2440的
帮个忙吧,谢谢