如何编写Linux设备驱动程序
用shell命令 $ cat /proc/devices | awk "$2=="test" {print $1}" 就可以获得主设备号,可以把上面的命令行加入你的shell script中去。 minor是从设备号,设置成0就可以了。 我们现在可以通过设备文件来访问我们的驱动程序。写一个小小的测试程序。
编译运行,看看是不是打印出全1 ? 以上只是一个简单的演示。真正实用的驱动程序要复杂的多,要处理如中断,DMA,I/O port等问题。这些才是真正的难点。请看下节,实际情况的处理。 如何编写Linux操作系统下的设备驱动程序 三、设备驱动程序中的一些具体问题 1. I/O Port. 和硬件打交道离不开I/O Port,老的ISA设备经常是占用实际的I/O端口,在linux下,操作系统没有对I/O口屏蔽,也就是说,任何驱动程序都可对任意的I/O口操作,这样就很容易引起混乱。每个驱动程序应该自己避免误用端口。 有两个重要的kernel函数可以保证驱动程序做到这一点。 1)check_region(int io_port, int off_set) 这个函数察看系统的I/O表,看是否有别的驱动程序占用某一段I/O口。 参数1:io端口的基地址, 参数2:io端口占用的范围。 返回值:0 没有占用, 非0,已经被占用。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |