/dev/mem 用来访问物理IO设备,比如X用来访问显卡的物理内存,或嵌入式中访问GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址来访问物理内存。这其实就是实现用户空间驱动的一种方法。 /dev/kmem 一般可以用来查看kernel的变量,或者用作rootkit之类的。 ...
分类:
其他好文 时间:
2019-06-23 19:05:07
阅读次数:
190
一个第一次涉及内核问题的 Unix 程序猿, 可能会紧张写一个模块. 编写一个用户程序来 直接读写设备port可能easy些. 确实, 有几个论据倾向于用户空间编程, 有时编写一个所谓的用户空间设备驱动对照钻研 内核是一个明智的选择. 在本节, 我们讨论几个理由, 为什么你可能在用户空间编写驱动. ...
分类:
其他好文 时间:
2017-08-17 16:28:39
阅读次数:
168
第5章 Android移植与驱动 通过学习本章Android移植与驱动,知道了Android移植和驱动的关系。其中,设备驱动程序包括内核驱动程序和用户空间驱动程序。Linux系统的设备分为3类:字符设备、块设备和网络设备。除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,通过文 ...
分类:
移动开发 时间:
2016-06-05 23:18:53
阅读次数:
217
一个第一次涉及内核问题的 Unix 程序员, 可能会紧张写一个模块. 编写一个用户程序来
直接读写设备端口可能容易些.
确实, 有几个论据倾向于用户空间编程, 有时编写一个所谓的用户空间设备驱动对比钻研
内核是一个明智的选择. 在本节, 我们讨论几个理由, 为什么你可能在用户空间编写驱动.
本书是关于内核空间驱动的, 但是, 所以我们不超越这个介绍性的讨论.
用户空间驱动的好处在于:
?...
分类:
其他好文 时间:
2016-04-08 15:15:37
阅读次数:
160
设备驱动程序大概可分为两种: 内核驱动程序及用户空间驱动程序。l 内核驱动程序是内核空间实现的驱动程序,它使用内核资源,内核栈。它包括可加载的内核驱动模块。在这里我想主要说说用户空间驱动程序的编写。l 用户空间驱动程序就是指在用户空间实现的驱动程序。可以认为,它跟普通的用户程序没有什么两样,它使用用...
分类:
其他好文 时间:
2015-12-07 10:21:55
阅读次数:
142
这几天研究了下/dev/mem,发现功能很神奇,通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,于是上网搜了一些/dev/mem的资料。网上的说法也很统一,/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),接着就可以用mmap来访问物理内存以及外设的IO资源,这就是实现用户空间驱动的一种方法。
用户空间驱动听起来很酷,但是对于/dev/mem,我觉得没那么简单,有2个地方引起我的怀疑:
(...
分类:
其他好文 时间:
2015-08-13 14:23:13
阅读次数:
482
【摘要】open(“/dev/mem”,O_RDWR|O_SYNC) 中/dev/mem是物理内存的全映像,可以用来访问物理内存。然后mmap,接着就可以用mmap的地址来访问物理内存,这实际上就是实现用户空间驱动的一种方法。
http://blog.csdn.net/wlp600/article/details/6893636#...
分类:
其他好文 时间:
2015-07-25 20:01:05
阅读次数:
217
【摘要】linux用户态的设备驱动开发:并不是所有的设备驱动程序都要在内核编写,有些情况下,在用户空间编写驱动程序能够更好地解决遇到的问题。本文对用户态驱动优缺点进行分析。1、用户空间驱动程序的优点1、可以和整个C库链接。2、在驱动中可以使用浮点数,在某些特殊的硬件中,可能需要使用浮点数,而linux内核并不提供浮点数的支持。如果能在用户态实现驱动,就可以轻松解决这一问题。
3、驱动问题不会导致整...
分类:
系统相关 时间:
2015-07-17 10:06:11
阅读次数:
904
内核中提供了USB设备文件系统(usbdevfs,Linux 2.6改为usbfs,即USB文件系统),它和/proc类似,都是动态产生的。通过在/etc/fstab文件中添加如下一行:none /proc/bus/usb usbfs defaults或者输入命令:mount -t usbfs no...
分类:
系统相关 时间:
2014-08-11 17:19:32
阅读次数:
482
usb驱动分为通过usbfs操作设备的用户空间驱动,内核空间的内核驱动。两者不能同时进行,否则容易引发对共享资源访问的问题,死锁!使用了内核驱动,就不能在usbfs里驱动该设备。 下面转载的一篇分析usb-skeleton.c文章。 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不...
分类:
系统相关 时间:
2014-08-11 11:24:52
阅读次数:
312