图解cdev_add()函数
在写字符驱动的时候需要使用内核提供的cdev_add()函数来想kobj_map添加自己的cdev结构体.
1.当执行完cdev_add()函数之后.我们最终形成的结构如上.它是一个hash链表结构.
那么hash值是谁呢.这个hash只提取的是一个主设备号,最大值254.
2.在添加新的设备的时候.我们会先使用主设备号...
分类:
其他好文 时间:
2015-01-02 19:55:58
阅读次数:
1628
ioctl
支持的操作,例如
简单数据传输控制动作,例如用户空间发起弹出介质动作反馈硬件的状态,例如报告错误信息参数配置,例如改变波特率执行自破坏
用户空间的ioctl方法原型:int ioctl(int fd, unsigned long cmd, …);每个ioctl命令就是一个独立的系统调用,而且是非公开的驱动程序的ioctl方法原型:int (*ioctl) (struct ...
分类:
系统相关 时间:
2014-09-27 23:37:30
阅读次数:
332
Linux 字符驱动程序(一)
在linux内核中设备主要有三种:
1 字符设备:
?字符设备的读写以字节为单位,存取时没有缓存。
?对字符设备发出读写请求时,实际的硬件I/O紧接着就发生了。一般来说,字符设备不支持随机访问。
?典型的字符设备包括鼠标、键盘及串行口等。
2 块设备:
?块设备读写以块为单位,典型的块大小为512或...
分类:
系统相关 时间:
2014-07-19 08:05:55
阅读次数:
429
0、我的理解,所为驱动,就是用户可以通过自己的应用程序访问你的文件系统。而我恰恰相反。1、我是谢了字符驱动,让我的fileSystem去做应用程序,同样可以被linux系统识别。2、其实我对驱动理解也不深,暂且贴代码。3、驱动程序:/*chardev.c 驱动程序*/#include #includ...
分类:
系统相关 时间:
2014-06-26 11:12:44
阅读次数:
372
参考:http://www.kerneltravel.net/?p=334衔铁两段代码:/*chardev.c*/#include #include /*for file-f_op*/#include #include /*for copy_to_user()*/#include /*for cde...
分类:
其他好文 时间:
2014-06-23 07:03:05
阅读次数:
350