商家名称 | 信用等级 | 购买信息 | 订购本书 |
ARM嵌入式系统移植实战开发(韩少云著) | |||
ARM嵌入式系统移植实战开发(韩少云著) |
版权页:
插图:
3.网络接口
网络接口是区别于字符设备和块设备的第三大标准类设备,与前两种设备不同,因为Unix世界里“一切皆是文件”的论述对于它来说并不适用。例如,块设备可以在系统文件树的ldev目录下找到特定的文件入口标志,而网络设备则没有这种文件操作人口。Unix式的操作系统访问网络接口的方法是给它们分配一个唯一的名字(比如eth0),而这个名字在文件系统中(比如刚刚提到的/dev目录下)不存在对应的节点项。网络接口同时具有字符设备、块设备的部分特点,但是都有不同。相比于字符设备,它的输入/输出是有结构的、成块的(报文、包、帧)。相比于块设备,它的“块”又不是固定大小的,可以大到数百甚至数千字节,又可以小到几个字节。由于网络接口并不是以文件的方式存在,这就导致应用程序、内核和网络驱动程序间的通信完全不同于字符设备和块设备,内核提供了一套push等操作来完成数据包的转换与递送,而不是open,read和write等。6.1.3 Linux设备驱动移植步骤
本节来介绍一下本章的重点-Linux设备驱动的移植。其实,Linux设备驱动的移植就是将写好的驱动程序添加到相应的内核中去。这里说的相应的内核而不是所有的内核,其原因是不同的内核它的目录树的结构是不同,即其中有些头文件的位置是不同的。甚至,其中的一些函数也不相同。所以在移植驱动程序的时候一定要注意驱动程序开发所参照的内核版本和所移植的版本要相同。
设备驱动程序移植有如下4个步骤:
(1)准备内核源码
准备要移植到的操作系统平台的源码,因为无论将驱动程序编译成模块还是将驱动程序添加到内核中编译内核,都需要该平台的内核源码包。
(2)准备驱动程序源码
该源码可以是自己写的驱动程序,也可以是别人写好的驱动程序,但前提是该驱动和所要移植的内核版本符合。
(3)编译驱动程序到内核
编译驱动程序可以分为两种形式:
①将准备好的驱动程序代码放到内核相应的目录下,并通过修改Makefile和Kconfig文件将其添加到内核目录树中,然后通过makemenuconfig配置该选项。
②使用准备好的内核源码将驱动程序编译成内核模块,将编译好的模块移植到相应的操作系统平台上,加载模块。
(4)测试驱动程序
编写简单的测试程序,测试所添加的驱动程序,查看其是否可用。
相关阅读:
更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/