画蛇添足之error of activesync over usb link to pc

      多么无辜的一周啊,原本想十一回来之后这个问题顶多半天就能搞定的。呵呵,还是太高估我自己了。
     下面说下问题,s3c2440的bsp在wince5上面跑,由于要通过pc装些东西,所以要提供activesync以连接pc。我的做法(最初当然得玩最低级的了)是新建一个基于usb的拨号连接,然后在pc connetion中选中这个连接,拔插一下usbd口的线。问题出现了:经典的拨号连接对话框闪了一下就不见了,taskbar上也没有连接的图标了。串口消息:RASCS_Disconnected: Ecode=619,查看ms的help文档意思是:ERROR_PORT_DISCONNECTED。
      至此,郁闷了。试了很多办法,可以证明硬件是好的,usbd口的各脚电压也是ok的。wince4.2的nk在这块板子上跑起来完全可以正常连接pc,证明pc端的activesync没有问题。问题肯定出在bsp中的相关代码上,因为在这种情况下就不要怀疑ms了。
      实在是没有办法了,就先从最基本的做起吧,都被逼到这份上了。首先看下中断,打开kernal\oal\intr.c,OALIntrStaticTranslate(SYSINTR_USBD, IRQ_USBD);这不是都加上了吗?靠,还是我加的呢(赖也赖不掉啊,注释中还有修改人和时间呢)。经过在OEMInterruptHandler函数中加几条测试消息看这个中断到底有没有正常工作。不看不知道,一看下一跳,在第一次拔插usb线(指d口)有中断产生,没有处理。第二次连中断都没有。这就对了,第一次产生的中断还在那耗着呢,能再产生那才有问题呢。很明显,上面的irq和sysintr影射的不对,中断没有正常被处理。
     恨自己啊,没有事你瞎加什么啊,懂不懂啊你!去掉上面的影射,按正常的sysgen and build。再创建拨号连接,拔插usb线,终于看到pc端的activesync动了,连接正常。
     无意中写的这么一句,整整搞了5天,这TMD什么事!

你可能感兴趣的:(error,网络,问题,of,activesync)