none
wince6.0的CS8900驱动问题 RRS feed

  • 问题

  • 系统启动后,在网络设置里没有cs8900的本地连接,不知道问题在哪里??
    有经验的给点请帮帮忙!!!

    用的是原来5.0下的,里面的寄存器配置针对我的板子做了修改,修改了platform.reg和platform.bib文件,修改了在OAL也对sysintr和interruptNumber做了映射的初始化,同时添加了我所能见到的所有的关于ndis的组件(RNDS除外),编译无问题,cs8900.dll也被打包进了内核,启动后,通过调试信息,可以看到8900.dll并没有被调用,我添加的注册表内容如下
    Code Snippet

    [HKEY_LOCAL_MACHINE\Drivers\CS8900]
    "Dll"="ndis.dll"
    "Prefix"="NDS"
    "Miniport"="CS8900"

    [HKEY_LOCAL_MACHINE\Comm\CS8900]
    "DisplayName"="CS8900"
    "Group"="NDIS"
    "ImagePath"="CS8900.dll"

    [HKEY_LOCAL_MACHINE\Comm\CS8900\Linkage]
    "Route"=multi_sz:"CS89001"

    [HKEY_LOCAL_MACHINE\Comm\CS89001]
    "DisplayName"="CS8900"
    "Group"="NDIS"
    "ImagePath"="CS8900.dll"

    [HKEY_LOCAL_MACHINE\Comm\CS89001\Parms]
    "BusNumber"=dword:0
    "BusType"=dword:0
    "InterruptNumber"=dword:A ;Virtual irq 10
    "IoBaseAddress"=dword:A7000300
    "SysIntr"=dword:13 ; (SYSINTR_FIRMWARE+3)
    "Transceiver"=dword:3
    "CardType"=dword:1

    [HKEY_LOCAL_MACHINE\Comm\CS89001\Parms\TcpIp]
    "EnableDHCP"=dword:0
    "DefaultGateway"="192.168.0.2"
    "LLInterface"=""
    "UseZeroBroadcast"=dword:0
    "IpAddress"="192.168.0.188"
    "Subnetmask"="255.255.255.0"
    "DNS"="202.106.196.115"

    [HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
    "Bind"="CS89001"


    PS:
    我用的是USB下载的方式,完全没有用到网卡,而且使用USB进行同步以后,能够使用主机进行上网,不知跟这个有没有关系?

    2008年11月19日 8:31

答案

  • 你的bib有问题,应该改成下面这样:

     

     

    IF BSP_NOCS8900 !
    IF BSP_KITL != ETHERNET
        cs8900.dll                $(_FLATRELEASEDIR)\cs8900.dll            NK    SHK
    ENDIF

     

    至于为什么,我想你自己应该可以想明白。

     

    2008年11月19日 9:44

全部回复

  • 你启动后添加调试信息,看到CS8900.dll并没有被调用是什么意思?是不是驱动的初始化函数没有被调用。

     

    是不是你的platform.bib改的有问题啊?把你的bib文件的改动贴出来!

     

    2008年11月19日 9:01
  • 对不起,可能我表达有误,的确像你所说的,cs8900.dll的初始化函数并没有被调用。

    针对8900,我在bib文件里添加了如下内容,并且宏也做了设置,启动后,我在windows目录下能看到这个动态库

    IF BSP_NOCS8900 !
    IF BSP_KITL != ETHERNET
        cs8900.dll                $(_FLATRELEASEDIR)\cs8900.dll            NK    SH
    ENDIF
    ENDIF ; BSP_CS8900
    2008年11月19日 9:29
  • 你的bib有问题,应该改成下面这样:

     

     

    IF BSP_NOCS8900 !
    IF BSP_KITL != ETHERNET
        cs8900.dll                $(_FLATRELEASEDIR)\cs8900.dll            NK    SHK
    ENDIF

     

    至于为什么,我想你自己应该可以想明白。

     

    2008年11月19日 9:44
  • 疏忽了……
    多谢多谢!
    2008年11月20日 1:09
  • 我也遇到同样的问题,"在网络设置里没有cs8900的本地连接",注册表中我的和他的不同的是:

    [HKEY_LOCAL_MACHINE\Comm\CS89001\Parms]
    "BusNumber"=dword:0
    "BusType"=dword:0
    "InterruptNumber"=dword:A ;Virtual irq 10
    "IoBaseAddress"=dword:A7000300
    "SysIntr"=dword:1A//13 ; (SYSINTR_FIRMWARE+3)
    "Transceiver"=dword:3
    "CardType"=dword:1
    我有几个基本的问题:

     我在CS8900的程序中那里看我的中断和地址,又在那里看逻辑中断,看有的文章在SMDK2410\OAL\INIT.C可是我没有这个文件.

    请与指教

     

     

    2008年11月21日 8:13
  • 中断在inc/oal_intr.h里有定义,根据你的中断接口,对应那里的irq就可以了
    地址我也没有搞明白呢,在等着牛人给说说……
    2008年11月21日 8:26