CS8900A网卡驱动移植
2009-11-09 16:08
260 查看
使用三星的wince5.0 BSP其不带支持CS8900的驱动,于是乎……得自己动手移植了。
没有原驱动程序怎么办?...这个是非常值得深思的问题....小菜,我也没有办法帮你解决!不过可
以解释为google吧,找找linux平台下面的驱动。我们公司之前就有2440的CS8900驱动,所以我就直接
拿来主义,用呗。
找到源代码,那么将源代码放在bsp包的driver目录下面,建个文件夹叫"CS8900"吧,之后就把源代
码仍进去(不用客气,有多粗暴就粗暴,反正代码不是我写的^_^题外话)
之后就参考流驱动的方法建立“MAKEFILE”和“SOURCES”文件以及def文件(就叫做"cs8900.def")
还有driver下的dir文件。dir文件直接在文件底部加“CS8900 /”就可以了(多了一个文件夹要编译
嘛!至少也得通知一下人家!)
1、先讲一下“MAKEFILE”可以从哪里得到。(高手别鄙视我,我不知道MAKEFIEL如何写但我知道
makefile这个文件的大概作用是用于编译文件的。既然,不知道怎么写,那就还是拿来主义吧!)参
考一下bsp包driver下的附带的驱动,看看每个驱动的“MAKEFILE”文件是不是一样???高兴了吧,
暗喜了吧。于是乎,又是被我从一个文件夹到另一个文件复制过来。看来拿来主义有时候还是挺好的
。
2、“MAKEFILE”文件,弄完了。那就弄“SOURCES”文件吧。这个也可以参考其他的驱动,但不能够
完全招搬,必须有所修改。大家可以去GOOGLE一下,搜索一下一些对SOURCES文件介绍的文章。这个
我就不讲了(汗!能力有限,没法讲。)贴自己程序的代码吧!
!if "$(BSP_NOCS8900)" == "1"
SKIPBUILD=1
!endif
TARGETNAME=cs8900
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry
###MSC_OPTIMIZATION=/Ox /Fc
TARGETLIBS= /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ndis.lib /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ntcompat.lib /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/coredll.lib /
$(_PROJECTROOT)/cesysgen/oak/lib/$(_CPUINDPATH)/ceddk.lib /
CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER -DCS8900
INCLUDES=$(_TARGETPLATROOT)/src/inc;
SOURCES= miniport.c/
interrup.c/
cs8900.c/
wince.c
3、接下来就是cs8900.def文件了。弄个dll文件库的人应该知道def文件的作用。我感性地对def文件
的理解是,“开放关口跟其他国家贸易”,留给其他文件的接口。
LIBRARY CS8900
EXPORTS DriverEntry
4、接下来还有一点是修改bsp下面的.bat文件。这个家伙很关键,弄了我好命苦。(咋是小菜,以前
编译一个简单的流驱动的时候没有修改过.bat文件,dll照样能够编译成功!可是这次,我没有修
改.bat结果是:编译通过,却没有生成.obj文件!没有obj文件,怎么link成dll或者exe呢!)想啊想
找呀找,唉原来在就编译的时候有一个地方地修改一下。在smdk2416.bat文件下,有这么一句“set
BSP_NOCS8900=1”莫非就是这个在搞鬼。原来真是这样。若将"set BSP_NOCS8900=1"改成"set
BSP_NOCS8900="就表示有CS8900的驱动。.....好郁闷,果然嫌自己菜!
似乎,胜利就在眼前。于是乎,我直接sysgen一下。结果发现,编译有error!郁闷,估计应该是
CS8900的驱动的问题(怀疑中...)!有怀疑那要找证据证明吧吧。于是,在pb中找到cs8900这个目录
,然后编译一下。果然出来了。他保inc/bsp.h打不开oal.h文件!
找到bsp.h看他里面卖的是什么东西,果然有一行是#include "oal.h"。于是,我再搜索一下inc/下面
的文件看看是否存在oal.h文件,果然.............没有.....真TMD的郁闷!又得找文件了.
搜索一下以前的带有cs8900的bsp。好在里面有oal.h这个文件。不如,我这个小菜要死了.
毫不犹豫地拿来主义,顺便看看oal.h里面卖的是什么!原来里面只是包含了其他的.h文件:
#include "oal_args.h"
#include "oal_cache.h"
#include "oal_memory.h"
#include "oal_io.h"
#include "oal_ethdrv.h"
#include "oal_flash.h"
#include "oal_ilt.h"
#include "oal_intr.h"
#include "oal_ioctl.h"
#include "oal_kitl.h"
#include "oal_nkxp.h"
#include "oal_misc.h"
#include "oal_log.h"
#include "oal_pci.h"
#include "oal_pcmcia.h"
#include "oal_power.h"
#include "oal_profiler.h"
#include "oal_rtc.h"
#include "oal_timer.h"
#include "oal_perreg.h"
于是在编译一下,oal.h打不开args.h文件。有点bs bsp提供商,怎么自己的bsp.h要调用oal.h又不
提供oal.h文件以及oal.h调用的其他文件!于是还是找以前的工程,一口气将其全部找全,再复制进
去.重新单独编译一下cs8900这个目录!发现成功了生成了cs8900.dll文件!
当然接下来就是讲cs8900.dll加入到.bib下面,这样应该就ok了.
小菜,没有办法讲地很细,多数是废话!请高手勿笑!o(∩_∩)o.
没有原驱动程序怎么办?...这个是非常值得深思的问题....小菜,我也没有办法帮你解决!不过可
以解释为google吧,找找linux平台下面的驱动。我们公司之前就有2440的CS8900驱动,所以我就直接
拿来主义,用呗。
找到源代码,那么将源代码放在bsp包的driver目录下面,建个文件夹叫"CS8900"吧,之后就把源代
码仍进去(不用客气,有多粗暴就粗暴,反正代码不是我写的^_^题外话)
之后就参考流驱动的方法建立“MAKEFILE”和“SOURCES”文件以及def文件(就叫做"cs8900.def")
还有driver下的dir文件。dir文件直接在文件底部加“CS8900 /”就可以了(多了一个文件夹要编译
嘛!至少也得通知一下人家!)
1、先讲一下“MAKEFILE”可以从哪里得到。(高手别鄙视我,我不知道MAKEFIEL如何写但我知道
makefile这个文件的大概作用是用于编译文件的。既然,不知道怎么写,那就还是拿来主义吧!)参
考一下bsp包driver下的附带的驱动,看看每个驱动的“MAKEFILE”文件是不是一样???高兴了吧,
暗喜了吧。于是乎,又是被我从一个文件夹到另一个文件复制过来。看来拿来主义有时候还是挺好的
。
2、“MAKEFILE”文件,弄完了。那就弄“SOURCES”文件吧。这个也可以参考其他的驱动,但不能够
完全招搬,必须有所修改。大家可以去GOOGLE一下,搜索一下一些对SOURCES文件介绍的文章。这个
我就不讲了(汗!能力有限,没法讲。)贴自己程序的代码吧!
!if "$(BSP_NOCS8900)" == "1"
SKIPBUILD=1
!endif
TARGETNAME=cs8900
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry
###MSC_OPTIMIZATION=/Ox /Fc
TARGETLIBS= /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ndis.lib /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ntcompat.lib /
$(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/coredll.lib /
$(_PROJECTROOT)/cesysgen/oak/lib/$(_CPUINDPATH)/ceddk.lib /
CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER -DCS8900
INCLUDES=$(_TARGETPLATROOT)/src/inc;
SOURCES= miniport.c/
interrup.c/
cs8900.c/
wince.c
3、接下来就是cs8900.def文件了。弄个dll文件库的人应该知道def文件的作用。我感性地对def文件
的理解是,“开放关口跟其他国家贸易”,留给其他文件的接口。
LIBRARY CS8900
EXPORTS DriverEntry
4、接下来还有一点是修改bsp下面的.bat文件。这个家伙很关键,弄了我好命苦。(咋是小菜,以前
编译一个简单的流驱动的时候没有修改过.bat文件,dll照样能够编译成功!可是这次,我没有修
改.bat结果是:编译通过,却没有生成.obj文件!没有obj文件,怎么link成dll或者exe呢!)想啊想
找呀找,唉原来在就编译的时候有一个地方地修改一下。在smdk2416.bat文件下,有这么一句“set
BSP_NOCS8900=1”莫非就是这个在搞鬼。原来真是这样。若将"set BSP_NOCS8900=1"改成"set
BSP_NOCS8900="就表示有CS8900的驱动。.....好郁闷,果然嫌自己菜!
似乎,胜利就在眼前。于是乎,我直接sysgen一下。结果发现,编译有error!郁闷,估计应该是
CS8900的驱动的问题(怀疑中...)!有怀疑那要找证据证明吧吧。于是,在pb中找到cs8900这个目录
,然后编译一下。果然出来了。他保inc/bsp.h打不开oal.h文件!
找到bsp.h看他里面卖的是什么东西,果然有一行是#include "oal.h"。于是,我再搜索一下inc/下面
的文件看看是否存在oal.h文件,果然.............没有.....真TMD的郁闷!又得找文件了.
搜索一下以前的带有cs8900的bsp。好在里面有oal.h这个文件。不如,我这个小菜要死了.
毫不犹豫地拿来主义,顺便看看oal.h里面卖的是什么!原来里面只是包含了其他的.h文件:
#include "oal_args.h"
#include "oal_cache.h"
#include "oal_memory.h"
#include "oal_io.h"
#include "oal_ethdrv.h"
#include "oal_flash.h"
#include "oal_ilt.h"
#include "oal_intr.h"
#include "oal_ioctl.h"
#include "oal_kitl.h"
#include "oal_nkxp.h"
#include "oal_misc.h"
#include "oal_log.h"
#include "oal_pci.h"
#include "oal_pcmcia.h"
#include "oal_power.h"
#include "oal_profiler.h"
#include "oal_rtc.h"
#include "oal_timer.h"
#include "oal_perreg.h"
于是在编译一下,oal.h打不开args.h文件。有点bs bsp提供商,怎么自己的bsp.h要调用oal.h又不
提供oal.h文件以及oal.h调用的其他文件!于是还是找以前的工程,一口气将其全部找全,再复制进
去.重新单独编译一下cs8900这个目录!发现成功了生成了cs8900.dll文件!
当然接下来就是讲cs8900.dll加入到.bib下面,这样应该就ok了.
小菜,没有办法讲地很细,多数是废话!请高手勿笑!o(∩_∩)o.
相关文章推荐
- cs8900a网卡驱动移植
- 移植CS8900A网卡驱动到GEC2440开发板
- WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(14)-移植CS8900A网卡NDIS Miniport驱动
- 单片机怎么驱动DM9000网卡(驱动移植时可做参考)
- s5pc100开发板网卡驱动的移植
- 驱动 ENC28J60 SPI网卡移植 linux 2.6.28 SAMSUNG 6410 ARM11
- S3c6410 linux内核移植(2)--- 添加dm9000网卡驱动
- Linux下ME3760_v2驱动移植方式,中兴4G网卡移植
- linux-2.6.32在mini2440开发板上移植--移植DM9000 网卡驱动
- cs8900a驱动移植笔记
- X-010 FriendlyARM tiny4412 uboot移植之移植网卡驱动TFTP用起来
- 【转】 linux内核移植和网卡驱动(二)
- 2440下vxWorks DM9000A网卡驱动移植
- wince下DM9000A网卡驱动移植及学习总结---2
- 网卡驱动7-netpoll和ethtool,以及ethtool移植和驱动简单实现
- 基于S3C2410的CS8900A驱动 for Linux 2.6.27 移植成功
- 网卡DM9000的驱动移植
- 基于2.6.35内核的无线网卡驱动的移植
- WL-167G无线网卡驱动移植
- uboot 1.16 移植到 sbc2440 的时候对CS8900A网卡BWSCON的一点理解