打印

Linux应用程序如何向设备发数据?

[复制链接]
3045|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blacksword|  楼主 | 2011-6-24 23:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本周,我的一个学生给我发了一个邮件,询问如何Linux下如何往外设写数据. 邮件如下.


老大:
        现在我有个紧急问题请教,希望你讲明白点,我想知道数据是怎么从用户态到内核态再到硬件设备上的,这个是我要找数据处理过程用的,就麻烦你讲细点啊



这可以说是用Linux开发嵌入式产品的人首先会遇到的一个典型问题. 那我们如何才能往设备写数据呢?

用户态的程序是运行在虚拟空间的,因此不能直接访问外设也就是设备
这个时间就需要驱动程序来帮忙.
Linux提供了函数在内核与用户程序之间复制数据.
这样当数据从用户态复制到驱动中后,就可以通过绑定物理地址到内核空间来进行设备的读写.
当然如果是数据量非常大,也可以直接映射物理地址到用户空间的一个指针上. 以便快速读写
具体参考《Linux Device Drivers》

相关帖子

沙发
wewo| | 2011-6-25 10:26 | 只看该作者
《Linux Device Drivers》 网上有嘛

使用特权

评论回复
板凳
blacksword|  楼主 | 2011-6-28 00:56 | 只看该作者
目前LDD3这本书是免费下载的,官方链接如下
http://lwn.net/Kernel/LDD3/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:西皮柚,我为自己代言 Blacksword  坚定的行者

64

主题

848

帖子

1

粉丝