|
本周,我的一个学生给我发了一个邮件,询问如何Linux下如何往外设写数据. 邮件如下.
老大: 现在我有个紧急问题请教,希望你讲明白点,我想知道数据是怎么从用户态到内核态再到硬件设备上的,这个是我要找数据处理过程用的,就麻烦你讲细点啊
这可以说是用Linux开发嵌入式产品的人首先会遇到的一个典型问题. 那我们如何才能往设备写数据呢?
用户态的程序是运行在虚拟空间的,因此不能直接访问外设也就是设备 这个时间就需要驱动程序来帮忙. Linux提供了函数在内核与用户程序之间复制数据. 这样当数据从用户态复制到驱动中后,就可以通过绑定物理地址到内核空间来进行设备的读写. 当然如果是数据量非常大,也可以直接映射物理地址到用户空间的一个指针上. 以便快速读写 具体参考《Linux Device Drivers》
|
|