驱动开发
脱水的a鱼
这个作者很懒,什么都没留下…
展开
-
用户空间和内核空间通讯之【Netlink 下】
关于Netlink多播机制的用法 在上一篇博文中我们所遇到的情况都是用户空间作为消息进程的发起者,Netlink还支持内核作为消息的发送方的情况。这一般用于内核主动向用户空间报告一些内核状态,例如我们在用户空间看到的USB的热插拔事件的通告就是这样的应用。 先说一下我们的目标,内核线程每个一秒钟往一个多播组里发送一条消息,然后用户空间所以加入了该组的进程都会收到这样的消转载 2016-11-30 15:08:07 · 435 阅读 · 0 评论 -
用户空间和内核空间通讯之【Netlink 中】
今天我们来动手演练一下Netlink的用法,看看它到底是如何实现用户-内核空间的数据通信的。我们依旧是在2.6.21的内核环境下进行开发。 在</usr/include/linux/netlink.h>文件里包含了Netlink协议簇已经定义好的一些预定义协议:点击(此处)折叠或打开 #define NETLINK_ROUTE 0 /* Routing/device转载 2016-11-30 15:05:40 · 618 阅读 · 0 评论 -
内核空间与用户空间通讯之NetLink机制(上)
Alan Cox在内核1.3版本的开发阶段最先引入了Netlink,刚开始时Netlink是以字符驱动接口的方式提供内核与用户空间的双向数据通信;随后,在2.1内核开发过程中,Alexey Kuznetsov将Netlink改写成一个更加灵活、且易于扩展的基于消息通信接口,并将其应用到高级路由子系统的基础框架里。自那时起,Netlink就成了Linux内核子系统和用户态的应用程序通信的主要手段之一。转载 2016-11-30 15:02:37 · 786 阅读 · 0 评论 -
Linux系统SPI驱动学习笔记(一)
SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是: CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚 因为在大多数情况下,CPU或SOC一侧转载 2017-06-20 17:50:18 · 1867 阅读 · 1 评论 -
Linux系统SPI驱动学习笔记(二)
五. SPI驱动的软件架构 在内核的SPI驱动的软件架构中,进行了合理的分层和抽象,如下图所示: SPI控制器驱动程序 SPI控制器不用关心设备的具体功能,它只负责把上层协议驱动准备好的数据按SPI总线的时序要求发送给SPI设备,同时把从设备收到的数据返回给上层的协议驱动,因此,内核把SPI控制器的驱动程序独立出来。SPI控制器驱动负责转载 2017-06-20 17:53:36 · 416 阅读 · 0 评论