花了一天的时间研究了一下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文件
4、添加蓝色区域的代码
5、添加蓝色区域的代码
6、添加蓝色区域的代码
7、添加蓝色区域的代码
8、添加蓝色区域的代码
9、添加蓝色区域的代码