linux/android driver
文章平均质量分 70
这个ID洒家要了
这个作者很懒,什么都没留下…
展开
-
android sdcard 蛋疼集锦
1. 拔掉sdcard文件管理器显示sdcard一直存在sdcard的插拔是通过uevet事件传递给上层的,在kernel的 kernel\lib\kobject_uevent.c kobject_uevent_env 函数中添加打印信息获取查看所有的uevent事件,发现只有sdcard插上时上传的add事件,sdcard拔掉时并没有相应的remove事件。。。 跟踪sd卡驱动原创 2016-09-02 16:32:35 · 1264 阅读 · 0 评论 -
android note
1.重要的property属性 #define ANDROID_RB_PROPERTY "sys.powerctl" // 控制启动状态 property_set(ANDROID_RB_PROPERTY, "shutdown,&quot原创 2016-08-02 16:02:17 · 6373 阅读 · 0 评论 -
关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 那么在中断处理程序中应该使用哪一个函数来关闭中断呢?在中的按键驱动中, 使用disable_irq来关闭中断, 但是我在测试时进入中断后系统会死在中断处理程序, 而改为disable_irq_nosync则能正常退出中断处理程序.下面从内核代码来找一下原因:先看一下disable_ir转载 2017-10-09 14:43:36 · 2210 阅读 · 0 评论 -
linux kernel note
1.?????v1#define CHARGER_PRINT(fmt,arg...) printk(" "fmt"\n",##arg)v2 #define CHARGER_PRINT(fmt,arg...) printk(" "fmt"\n原创 2016-08-02 14:49:13 · 3125 阅读 · 1 评论 -
linux device
struct device.kobj.name // device namestruct device->driver_data void dev_set_drvdata(struct device *dev, void *data) void dev_get_drvdata(struct device *dev, void *data)str原创 2017-08-25 10:12:47 · 363 阅读 · 0 评论 -
notifier chain — 内核通知链
大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执行。所以对于通知链表来说转载 2017-08-22 16:31:16 · 1094 阅读 · 0 评论 -
linux环境常用配置
1.vim(1)快捷键 gg 开始 shift + g 末尾 ctrl+f 下页 ctrl+u 上页(2)配置项set syntax=onset fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk2312,cp936set nocpset numberset tabstop=4set rulerset incsearc原创 2016-08-29 16:06:16 · 944 阅读 · 0 评论 -
bootargs 及其解析流程
1.kernel中的 dtsi里面可以设置启动参数// msm8717.dtsichosen { bootargs = "sched_enable_hmp=1 mem=2G"; };2.bootargs参数解析 demo关键字:early_paramstatic int __init early_mem(char *p) // mem=原创 2017-03-30 16:37:05 · 3249 阅读 · 0 评论 -
设备树中相关函数
1.结构关系device_node 结构被 device 结构包含struct device {... struct device_node *of_node; /* associated device tree node */...}2.相关函数drivers/of 目录下的相关文件封装了所有的 device dree的设备相关函数 2.1 base// (1)判断 node原创 2017-04-18 17:10:29 · 940 阅读 · 0 评论 -
linux设备数
0.决定哪个dtb文件属于一个板子arch/arm/mach-msm/Makefile.bootarch/arm64/boot/dts/qcom/Makefile 1. compatible属性1.树中的每 一个设备的节点都要有一个compatible属性。 - compatible是OS用来决定绑定到设备的设备驱动的关键,根据名字匹配驱动。2. reg 地址用来表示i2c的设备地址等原创 2017-02-21 11:27:15 · 797 阅读 · 0 评论 -
Linux power supply framwork & drv (2) —— qcom
1.框架图原创 2016-08-26 17:39:35 · 816 阅读 · 0 评论 -
android uevent
Uevent是内核通知android有状态变化的一种方法,比如USB线插入、拔出,电池电量变化等等。其本质是内核发送(可以通过socket)一个字符串,应用层(android)接收并解释该字符串,获取相应信息。一、Kernel侧UEVENT的发起在Kernel端,主要是通过函数 int kobject_uevent_env(struct kobject *kobj, enum kobject_ac转载 2016-08-29 10:33:20 · 2133 阅读 · 0 评论 -
java异常
Java.lang.NullPointerException: 空指针异常 java.lang.ClassNotFoundException: 找不到类抛出的异常 java.lang.ArithmeticException: 一个整数“除以零”时抛出的异常 java.lang.ArrayIndexOutOfBoundsException: 数组越界访问以后抛出的异常 java.lang.Il原创 2016-11-07 22:17:15 · 455 阅读 · 0 评论 -
linux 系统调用 inotify & epoll
一、inotify作用: 监控一个目录下文件的增加、删除事件1.重要的数据结构// 发生的event结构struct inotify_event { __s32 wd; /* watch descriptor */ __u32 mask; /* 表明add /remove 事件 IN_CREATE, IN_DELETE, IN_原创 2016-10-27 11:12:20 · 4135 阅读 · 2 评论 -
linux kernel 内核定时器
1.涉及函数// 1. 初始化定时器队列结构 init_timer(&buttons_timer);// 2. 定时器超时函数 buttons_timer.function = buttons_timer_function; // 3. 添加定时器 add_timer(&buttons_timer); // 4. 设置定时器超时时间 1\100 s(修改一次超时时间只会触发原创 2016-09-26 11:27:03 · 8249 阅读 · 1 评论 -
linux kernel poll & 等待队列
1.等待队列1.1概念保存进程的容器 - 阻塞时,将进程放入等待队列 - 唤醒进程时,从等待队列中取出进程1.2 等待队列的初始化等待队列的定义和初始化–可以分部完成也可以一步完成(1)定义等待队列、初始化wait_queue_head_t wait; init_waitqueue_head(&wait);(2)定义并且初始化等待队列static DEC原创 2016-09-25 17:59:57 · 2308 阅读 · 0 评论 -
谈谈Linux下动态库查找路径的问题
<p></p> </div> <div class="Blog_wz1" style="word-wrap: break-word;"> <span style="font-size:16px;">&转载 2019-02-12 10:53:09 · 496 阅读 · 0 评论