驱动的基础知识

一、驱动的基础知识,老谢说的对,驱动其实就是操作硬件的软件。

两个基本的点必须永远记住:

1)设备的分类:①块设备 block

                                          ②字符设备 char

                         ③网络设备

 2)块设备和字符设备的区别 

                         ①字符设备是按字节进行读写的

                         ②块设备是按块进行读写的,只能一次传送一个或多个长度是512字节( 或一个更大的 2 次幂的数 )的整块数据

                                               

3)linux中块设备和字符设备的区别:Linux中允许块设备传送任意数目的字节。

4)块设备和字符设备还有一点点区别是访问顺序的问题,块设备可以随机的访问,而字符不可以。

 

PCI和USB这种分类方法是按照总线的分类方法进行分类的。

 块设备和字符设备的区别仅仅是驱动的与内核的接口不同!!!!!

 

驱动程序写到了网络接口个人觉得已经到了大牛的地步。

关于网络接口各种套接字,各种socket,至今没有机会去了解。但是对于菜鸟可以初步理解成IO口,别的我们不懂,操作一个IO口还算是熟悉的吧?那好,就按照这个思路去学吧,我也没学,只看过一点书,希望是这样的。

谢老师的课件是下面这么说的。

任何网络事务都通过一个接口来进行, 一个接口通常是一个硬件设备(eth0), 但是它也可以是一个纯粹的软件设备, 比如回环接口(lo)。一个网络接口负责发送和接收数据报文。

 

linux驱动程序的安装的两种方式:

1.模块的安装。

2.直接编译进内核。 

二、把一个驱动程序编译进内核

环境:红帽企业版5,linux内核是3.4.2。

这次配置完全是在没有单板相关的情况下进行配置的,如果想要单板相关,只要修改一下.config就可以了。

 

在进行各类修改之前先把自己写好的小的测试程序放入 /drivers/char目录下。

 

1.修改kconfig ----------------------用于修改配置菜单。

①进入drivers目录,然后再进入char(字符)目录,修改里面的Kconfig。

②在Kconfig目录下添加如下代码config HELLO_WORLD
                                                                     (注意使用TAB键)bool "helloworld"

完成第二步以后在根目录下执行make menuconfig,进入驱动目录下的Character divece目录就可以发现helloworld(new)的目录项。

 

显示配置结果。查看配置结果去看.config就可以查看。到根目录下执行.config。搜索HELLO就可以查看了(大家都懂得)。


2.修改Makefile

①进入驱动所在目录下的Makefile,此处进入linux-3.4.2/drivers/char这个目录,对这个目录下的Makefile进行修改。

②在Makfile中添加如下代码。obj-$(CONFIG_HELLO_WORLD)       += hello.o

 

修改好了直接编译内核即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值