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

[复制链接]
3951|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

粉丝
快速回复 在线客服 返回列表 返回顶部