自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

转载 input子系统基础之按键1——什么是input子系统?

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。参考:http://www.cnblogs.com/deng-tao/p/6094049.html本节全面介绍input子系统的概念和来源、解决的主要问题,目的是让大家对linux中输入类设备有一个全面了解。一、什么是input子系统?1、何为输入设备?2、linux中输入设备的编程模型(1)命令行界面的输入类设备应用接口;(2)...

2018-04-28 09:46:28 348

转载 input子系统基础之按键2——input设备应用层编程实践

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。一、input设备应用层编程实践11、确定设备文件名(1)应用层操作驱动有2条路:/dev目录下的设备文件,/sys目录下的属性文件(2)input子系统用的/dev目录下的设备文件,具体一般都是在 /dev/input/eventn(3)用cat命令来确认某个设备文件名对应哪个具体设备。实测的键盘是event1,而鼠标是even...

2018-04-28 09:45:45 231

转载 input子系统基础之按键3——input子系统架构总览

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。1、input子系统分为三层整体驱动分为三层(不是说应用层和驱动层的关系,而是驱动分层)(1)最上层:输入事件驱动层,evdev.c和mousedev.c和joydev.c属于这一层负责将struct input_event 呈送给应用层。随着时间发展,最后一般集中采用event handlers。但不是排他性的,可以同时存在,可...

2018-04-28 09:44:58 144

转载 input子系统基础之按键4——输入核心层源码分析

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。主要分析input.c文件一、输入核心层源码分析11、核心模块注册:input_init函数(1)class_register:用来注册input类(2)input_proc_init:用来创建proc文件系统(3)register_chrdev主设备号都是13,依靠次设备号来区分2、设备驱动层的接口函数(1)input_allo...

2018-04-28 09:44:20 296

转载 input子系统基础之按键5——按键驱动

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。1、模板(参考input_programming.txt)(1)input类设备驱动模式非常固定,用参考模版修改即可(2)新建驱动项目并粘贴模版内容2、模板驱动的解析3、着手移植驱动4、驱动移植细节5、驱动实践[cpp] view plain copy#include <linux/input.h>   #includ...

2018-04-28 09:43:01 315

转载 linux内核的I2C子系统详解1——I2C总线概览、驱动框架概览

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。1、I2C总线汇总概览(1)三根通信线:SCL、SDA、GND;(2)同步、串行、电平、低速(几百k)、近距离;(3)总线式结构:支持多个设备挂接在同一条总线上(4)主从式结构:通信双方必须一个为主(master)一个为从(slave),主设备掌握每次通信的主动权,从设备按照主设备的节奏被动响应。每个从设备在总线中有唯一的地址(s...

2018-04-28 09:41:54 148

转载 linux内核的I2C子系统详解2——关键结构体、关键文件

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。3、I2C子系统的4个关键结构体(1)struct i2c_adapter :I2C适配器用来描述I2C控制器的,只和主机有关系。换一颗SoC则需要修改该结构体。(2)struct i2c_algorithm:I2C算法主要描述主机和从机通信的算法(主要是时序等内容),和主机、从机都有关系。(3)struct i2c_client...

2018-04-28 09:41:14 120

转载 linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。5、i2c-core.c初步分析(1)smbus代码略过:smbus是基于I2C总线发展出来的。(2)模块加载和卸载关键是bus_register(&i2c_bus_type),从中可以知道匹配机制;6、I2C总线的匹配机制(1)match函数(2)probe函数(3)总结I2C总线上有2条分支:i2c_client链和i...

2018-04-28 09:40:28 620

转载 linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。主要分析i2c-s3c2410.c文件。8、adapter模块的注册(1)平台总线方式注册因为I2C控制器属于内部外设。(2)找到driver和device,并且确认其配对过程(在platform.c中由匹配函数来匹配);(3)probe函数9、probe函数分析(1)填充一个i2c_adapter结构体,并且调用接口去注册之;(...

2018-04-27 10:56:33 135

转载 linux内核的I2C子系统详解5——i2c_driver的注册、i2c_client的来源

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。11、i2c_driver的注册(1)以gslX680的驱动为例(2)将驱动添加到内核SI项目中(3)i2c_driver的基本分析:name和probe匹配方法是http://blog.csdn.net/oqqhutu12345678/article/details/78826490中讲述的;匹配上之后,执行probe函数。12...

2018-04-27 10:55:38 369

转载 内核中的竞争状态和互斥(简述)

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。一、概念(1)竞争状态(简称竟态);(2)临界段(某一段代码,该代码有可能造成并发,因此应该添加锁。这段代码应该尽可能地短)、互斥锁、死锁(由于互斥锁使用不对,导致的后果);(3)同步与并发(多CPU、(单cpu下)多任务、中断)。二、解决竟态的方法(1)原子操作(automic_t,即不可分割的操作(以前认为原子不可以分割))操...

2018-04-27 10:54:25 327

转载 中断的上下半部

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。因为输入类设备的输入都是异步事件,因此一般使用中断来处理和响应。1、中断处理的注意点中断处理程序处于中断上下文中,不能和用户空间数据交互(不能使用copy_to(from)_usr函数);中断处理程序不能交出CPU(不能休眠、不能schedule);ISR运行时间尽可能短,越长则系统响应特性越差。2、中断下半部2种解决方案当中断处...

2018-04-27 10:53:42 177

转载 Linux总线设备驱动框架的理解

以下内容源于微信公众号:嵌入式企鹅圈。有格式内容上的修改,如有侵权,请告知删除。Linux的设备驱动框架,即某类设备对应的驱动的框架。这里是“Linux总线设备驱动框架”,应该这样理解,(Linux的总线设备)驱动框架,即总线式设备对应的驱动的框架。(个人理解)1、总线总线代表着同类设备需要共同遵守的工作时序,不同的总线对于物理电平的要求是不一样的,对于每个比特的电平维持宽度也是不一样,而总线上传...

2018-04-27 10:52:47 391

转载 Linux字符设备驱动剖析

以下内容转载于博客http://blog.csdn.net/yueqian_scut/article/details/45938557。有删改和格式调整,如有侵权,请告知删除 。一、应用层的程序很简单,open设备文件,read、write、ioctl,最后close退出。[cpp] view plain copyint main(int argc ,char *argv[])  {     un...

2018-04-27 10:51:54 106

转载 Linux 设备文件的创建和mdev

内容转载于http://blog.csdn.net/yueqian_scut/article/details/46771595。有格式的调整和内容的删改,如有侵权,请告知删除 。本文将从代码级去理解Linux设备类和设备文件的创建过程。一、设备类相关知识设备类是虚拟的,并没有直接对应的物理实物,只是为了更好地管理同一类设备导出到用户空间而产生的目录和文件。整个过程涉及到sysfs文件系统,该文件系...

2018-04-27 09:51:16 204

转载 platform_device和platform_driver的注册过程,及probe函数何时调用的分析

转载于http://blog.chinaunix.net/uid-7828352-id-3833188.html参考资料:http://blog.csdn.net/xiafeng1113/article/details/8030248参考资料:http://www.linuxidc.com/Linux/2017-08/146261.htm参考资料:https://www.cnblogs.com/d...

2018-04-27 09:46:52 739

转载 mt6737电池状态监测

 这里分析下mt6735平台下的电池驱动,使用的bq24296芯片(开关模式的充电方式)。kernel-3.18/drivers/power/mediatek/battery_common.c[cpp] view plain copystatic int battery_probe(struct platform_device *dev)  {      struct class_device *...

2018-04-27 09:40:57 900

st7701驱动 datasheet

st7701驱动 datasheet

2024-08-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除