关闭

linux设备驱动uevent详解,高通平台battery上报电量实例

本文以高通平台上的android系统为参照展开探讨。 1,uevent是什么呢? uevent是一种linux设备模型中的一个组成部分。kseg中包含的uevent_ops结构体拥有uevent的操作函数。 uevent可以在设备发生变化时主动通知应用层。是对普通先注册设备后注册驱动模式的一种补充。一般用作usb设备的自动驱动加载、电池电量上报等。 2,uevent主动通知应用层的...
阅读(60) 评论(0)

sys文件系统中文件、文件夹与kobject、kset、kobj_type的对应关系

网上对sys文件系统与kobject的文章很多,但对初学者的我越看越乱。几经辗转总结出如下结论,如有误恳请讨论指出,直接给出: 1,kobject,kset对应sysfs里面的文件夹,目录的名字就是结构体中的 name 2,kobj_type对应sysfs里面的文件,这些文件是kobject的属性的外在表现 3,kobject是linux设备树的核心结构体,整个设备树都是围绕kobject建...
阅读(105) 评论(0)

linux双向链表List结构分析

双向链表是linux内核中的一个核心数据结构,由于其运用场景众多如task列表、设备列表等等,因此内核将其操作逻辑独立了出来。下面我们以i2c的设备树列表为例来看一下List列表的使用方法。 如图所示,双向链表不包含任何数据,在使用时,将其嵌入到目标结构体中使用。且第一个list_head不与数据机构体关联,作为整个链表的起始。 List的实现代码在kernel\include\linux...
阅读(109) 评论(0)

linux中i2c子系统代码结构详解

本文介绍一下linux驱动代码中i2c子系统的驱动代码结构和使用方法,示例平台文件为高通msmXXXX平台 一,i2c子系统代码结构 i2c-core.c 1,使用bus_register进行总线注册 2,提供与具体硬件无关的操作逻辑供i2c-dev.c中使用 3,将操作逻辑通过EXPORT_SYMBOL导出到整个内核,供其他基于i2c的设备驱动调用 i2c-dev.c...
阅读(102) 评论(0)

linux模块(module_init)、子系统(subsys_initcall)入口函数详解

linux内核代码是以模块(module)和子系统(subsys)为单元的层次结构。在写模块代码时我们知道入口函数是module_init()或subsys_initcall(),在linux启动时会被调用,这其中更为详细的前因后果是什么呢,一起来了解一下。 一,linux模块程序示例 下面是一个linux模块的示例程序: #include #include MODUL...
阅读(53) 评论(0)

c++与其他语言的语法区别总结

c++是一个具有一些c语言特性的不纯粹的面向对象语言,下面整理一些c++与其他语言的区别之处,避免混淆。 c++中还是有指针概念的 struct结构体也依然存在,c语言中经常用struct来模拟class的功能。 c++支持多继承 c++最为特色的是模板的概念,好像是c++语言独有的吧 c++中没有interface关键词,使用virtual关键词构建纯虚函数实现接口特性...
阅读(115) 评论(0)

android AP侧通过sensor_class挂载sensor的一种方案

1.引言 1.1背景 目前android上对sensor的处理是将其挂载到类似于sensorhub的独立处理单元上与AP分离,这样便于解决功耗问题。高通平台也类似的将sensor挂在了adsp上,但特定需求下还是希望sensor能够挂载到AP下,并且对上层隐藏这种差异,可以使用相同的处理流程。本文介绍一种使用以input设备为基础的sensor_class抽象类在AP侧挂载sensor的方法。...
阅读(105) 评论(1)

android oreo 中adb shell中的ps命令需要加参数ps -A

更新了android oreo后发现在adb shell中执行ps命令只得到了很少的信息: msm8937_32:/ # ps USER PID PPID VSZ RSS WCHAN ADDR S NAME root 4285 1516 4632 1544 sigsuspend add6067c S sh...
阅读(143) 评论(0)

英语知识系列:英语与中文的句子成分对应关系

我们对英语的句子感到不适应,主要是由于英语的句子成分的位置关系与中文有所不同。这篇文章我们来看一下,英语中各个句子成分的位置与中文句子中各个成分的对应关系: 汉语句子成分: (状语1) + 定语1 + 主语 + 状语2 + 谓语 + 定语2 + 宾语 + (状语3) 英语句子成分: (状语1) + 主语 + 定语1 + 谓语 + 状...
阅读(101) 评论(0)

linux驱动由浅入深系列:基于高通平台分析触摸屏(TP)、虚拟按键驱动

触摸屏的触摸板(touch panel简称TP)驱动的基本架构和普通按键驱动基本一致,可以参考文章:linux驱动由浅入深系列:输入子系统之二(编写一个gpio_key驱动)。只是其功能稍稍复杂些,配置也多些,下面一起来看一下。 TP包括 触摸屏、虚拟按键、虚拟按键背光灯 TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synapt...
阅读(171) 评论(1)

Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953实例分析篇)

本系列导航: Linux DTS(Device Tree Source)设备树详解之一 Linux DTS(Device Tree Source)设备树详解之二 在前两篇中我们了解了DTS的背景基础知识以及发挥作用的流程,这篇文章我们以高通的MSM8953平台为例来添加一个基础的i2c设备(包含一个gpio中断)。 1,首先我们在该i2c设备的驱动中找到了匹配设备与...
阅读(475) 评论(0)

linux驱动由浅入深系列:camera驱动之一(背景及基础知识篇)

这篇文章了解一下与摄像头相关的概念知识,如光圈、快门速度、CCD,CMOS图像传感器、彩色滤波阵列、白平衡、自动对焦等。下一篇文章介绍应用层通过摄像头获取一张图片的实例程序,之后再逐层深入linux的v4l2架构下的驱动部分。 曝光三要素 在摄影名词中应该听说过曝光三要素:光圈大小、快门速度、感光度(ISO),今天我们也从这个开始了解吧。先通俗的说一下,光圈就是指曝光瞬间开孔多大;快门速度就是...
阅读(182) 评论(0)

linux驱动由浅入深系列:高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)

本系列导航: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构) linux驱动由浅入深系列:高通sensor架构实例分析之三(adsp上报数据详解) 从adsp获取数据的方法分为同步、异步两种方式,但一般在实际使用中使用异步方式,因为同步获取数据会因...
阅读(661) 评论(0)

从c语言快速过渡到java语言(java语言与c语言语法区别概述)

本文适合有面向对象知识积累,熟悉c/c++语法,希望快速料及java语法的同僚,并非一篇基础详尽的基础知识教程。 语言类型 c语言:面向过程 java:面向对象 面向对象语言出现的原因是提高编程粒度。也就是说在建大型建筑的时候就不再用土堆砌了,而是粒度更大的复合材料。面向对象语言的最小单位是类。 数据类型 java数据类型:     1):基本数据...
阅读(136) 评论(0)

android系列:第三篇android调试常用工具:模拟按键输入,修改分辨率,获得按键消息

本文将介绍一些android开发中常用的调试技巧如:模拟按键输入,修改分辨率,获得按键消息 getevent 获取所有输入设备的事件,如power键,音量键、触摸屏、耳机插拔事件等 shell中直接输入getevent,首先打印的即为各个eventX对应的设备关系,如下图展示了按下power键和滑动触摸屏的相应event   hexdump 使用hexdump工具可以直...
阅读(130) 评论(0)
64条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:24008次
    • 积分:925
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:0篇
    • 译文:1篇
    • 评论:12条
    关于