none
移植cs8900驱动到wince5.0 RRS feed

  • 问题

  • 我请大家请教一下,如何移植CS8900网卡驱动到wince5.0中(我用的S3C2416的BSP不带有cs8900驱动,但开发板上面有)?
    1、目前,我从公司旧的2416bsp上面将cs8900的源代码(这个代码在开发板上面是跑成功了的,新旧BSP都支持同一块开发板)放到了新的2416bsp的driver目录下面,修改了driver目录下的dirs文件;
    2、修改了smdk2416.bat文件的“set BSP_NOCS8900=”
    3、添加plateform.bib文件
     IF BSP_NOCS8900 !
    IF BSP_KITL != ETHERNET
    cs8900.dll $(_FLATRELEASEDIR)\cs8900.dll NK SH
    ENDIF
    ENDIF ; BSP_CS8900
    以及修改plateform.reg文件
    IF BSP_NOCS8900 !
    IF BSP_KITL != ETHERNET
    [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:1
    "SysIntr"=dword:1B ;bsp_cfg.h
    "InterruptNumber"=dword:1B ;bsp_cfg.h
    "IoBaseAddress"=dword:AB000300 ;bsp_cfg.h
     "Transceiver"=dword:3
    "CardType"=dword:1
    [HKEY_LOCAL_MACHINE\Comm\CS89001\Parms\TcpIp]
     "EnableDHCP"=dword:1
    "DefaultGateway"="192.168.3.1"
     "LLInterface"=""
    "UseZeroBroadcast"=dword:0
    "IpAddress"="192.168.3.31"
    "Subnetmask"="255.255.255.0"
    ; "DNS"="0.0.0.0"
    [HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
    "Bind"="CS89001"
    ENDIF
    ENDIF; BSP_CS8900
    4、然后,在PB5.0上面的plateform->settings->build options中只勾选了一项“Enable Eboot Space in Memory”;
    5、最后编译和sysgen os 编译后os能够在开发板上面跑起来,在windows目录下面也能够见到cs8900.dll,但是在开发板上面插上网线,仍然不能够上网。我通过串口打印的信息发现:
     +CS8900:DriverEntry
    InitEthDevice Port ok.
     Signature Error 0
    Eisa Number Error 0
    CS8900:CSInit failure!!
    从信息上面看,应该是驱动没有加载起来。 我请教一下高手,是不是我的移植驱动的过程少了什么步骤么?
    请指教,谢谢。
    2009年11月23日 6:44

答案

  • 我以前移植过cs8900网卡,基本上不用改代码的。所有的配置都很灵活,放在注册表中。
    你可以看一下代码
     Signature Error 0 
    Eisa Number Error 0 
    CS8900:CSInit failure!! 

    这三句话是从哪里打印出来的,看看那附近的代码,就应该知道错误在哪里了。

    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    2009年11月27日 14:39
    版主