Linux驱动学习之TQ2440DM9000E网卡驱动移植(Linux-2.6.30.4)


花了一天的时间研究了一下Linux-2.6.30.4版本内核下关于TQ2440 DM9000E的网卡驱动移植,总结一下自己的收获。

其实,在Linux-2.6.30.4版本内核下有关于网卡驱动,但是这个网卡驱动不是针对于 DM9000E,而是针对于 DM9000的。因此要在此基础之上修改一些参数,并且打上必要的相关代码。这个网卡驱动移植是参照了“天嵌科技出品-Linux移植之Step By Step_V4.6”的文档。但就是这样,还是花费了将近一天的时间。其实这里的难点在于:文档中只是给出了修改代码的大体位置,而没有很详细的说清楚。因此才会出现,不知道要在什么位置添加或者修改代码的问题。这个文档上面的配置方法,我总共配置了不下5遍。对照着这个文档,以及从网上搜索的一些资料,改了一遍又一遍。

因此,我觉得学习嵌入式,不仅要有一股坚持的劲,还要有耐心。因为我在修改网卡驱动的时候,修改一遍,编译内核,下载到板子,运行看是否正确;然后再修改一遍,然后再编译内核,然后再下载到板子,在运行查看结果……知道成功为止。这中间不知道要经过多少次的重复,难免会觉得烦躁,甚至气馁。但是,我个人觉得这似乎才是学习的真谛:我们遇到问题,然后我们想方设法去解决问题。在解决问题的时候,我们会去查阅资料,会去思考,会去假设,然后自己去做实验去验证(实践),如果假设不正确,就会再去查资料,思考,假设,验证……直到成功。其实说到底,就是重复。在重复的过程中,慢慢的理解了这部分的知识,慢慢的提升了自己的能力。有的时候我们突破一个问题的时候,就会有一种豁然开朗的感觉。因此,学习怕的不是遇到很多的问题,而是遇不到问题。

总结到此结束。下面将配置好的代码的具体位置上图:

arch/arm/mach-s3c2440/mach-smdk2440.c

1、添加蓝色区域内的代码

\

2、添加蓝色区域内的代码

\

\

3、添加蓝色区域内的代码

\

下面是修改drives/net/dm9000.c文件<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+NKGizO2808C2yavH+NPytcS0+sLrPC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140523/2014052308513115.png" alt="\">

5、添加蓝色区域的代码

\

6、添加蓝色区域的代码

\

7、添加蓝色区域的代码

\

8、添加蓝色区域的代码

\

9、添加蓝色区域的代码


相关内容