
驱动开发
文章平均质量分 75
kpler
嵌入式软件
展开
-
输入子系统
主要是用这个结构体来描述这个硬件,__set_bit()使用这个函数来配置事件类型,哪种事件和事件参数,在使用下面这个函数来上报输入事件给input_Core层。它提供了一个通用的框架,用来处理各种输入设备的数据,比如键盘、鼠标、触摸屏、游戏控制器等。在linux内核里面主要用哪个结构体来配置输入设备,使用input_dev来描述这个输入设备,下面是input_dev结构体。2.3 输入设备层 :硬件相关的驱动,从硬件里面获得数据,转换为标准输入事件,上报给核心层。代表同步事件给上面的输入核心层。原创 2024-09-09 21:11:30 · 323 阅读 · 0 评论 -
I2c子系统
总结一下数据传输的关键点:数据稳定性:在 SCL 的高电平期间,SDA 上的数据必须保持稳定,不发生变化。这是因为在 SCL 的高电平时,数据被接收方读取。数据变化时机:SDA 上的数据变化应在 SCL 的低电平期间进行,这样数据在 SCL 的下一个高电平到来之前已经稳定,确保数据的正确读取。数据有效性:数据在 SCL 为高电平时被视为有效,此时数据被从设备读取。每一次发送数据过后都需要收一个ack来确认数据是否收到在I2C中,0110这个数据是先发送最高位,然后再发送低位。原创 2024-08-15 22:37:47 · 729 阅读 · 0 评论 -
驱动基础开发
字符设备驱动框架,首先我们需要去用module_init这个宏去修饰整个驱动的入口函数,用module_exit去修饰整个驱动的出口函数,然后还需要用MODULE_LICENSE用于声明模块的许可证类型。在入口函数里面我们需要注册字符设备,使用register_chrdev()注册字符设备,使用class_create来注册区分一个类,在用device_create来为这个类创造一个设备节点,供我们在linux根目录下的dev目录下给应用层程序访问。原创 2024-08-14 21:16:46 · 1187 阅读 · 0 评论