9 eqwewr

尚未进行身份认证

暂无相关简介

等级
TA的排名 9k+

安卓linux uevent内核上报机制实例

uevent可以实现内核通知上层的一种机制,最常见的电池状态的变化就是kernel uevent通知的,每次百分比或者其他的变化通过power_supply_changed通知上层update;每个device下面都有kobj,找到device就可以通过kobject_uevent_env 通知android了;以拔出T卡为例,内核通知上层。这里的T卡是一种sdio设备,普通T

2015-01-20 21:21:29

linux select与poll实现机制与实例分析

我们直到上层对文件操作结合select与poll可以实现阻塞操作,那么究竟是如何实现的呢?select接口:    int select(int nfds, fd_set *readset, fd_set *writeset,               fd_set *exceptset, struct timeval *timeout);      其中: nf

2015-01-20 18:09:13

linux内核3.4基于wakeup_source的autosleep机制分析

一:wakeup_source简介:    linux 3.4内核PM使用了wakeup_source来保持唤醒状态,也就是keep awake。之前android一直是基于Linux加入了wake_lock机制来阻止系统休眠,后来Linux 3.4内核加入了wakeup_source来管理,安卓4.4跟着升级内核也就摒弃了自己的臃肿的wake_lock机制,在对上层接口并不改变,在内核wak

2014-11-24 19:25:53

Linux音频ALSA机制学习笔记<二>

首先是dapm是什么?就是音频电源动态管理。相信电源管理大家都不会陌生。dapm设计的目的就是只有需要时才打开必要的部件(widget),不需要时则关闭部件, 达到省电的目的。ALSA通过kcontrol来切换音频通道,当playback或者capture时会更新通道激活下的widget power,这个是由内核event统一完成的,无须上层干预。widget定义widgets

2014-11-04 21:28:15

Linux音频ALSA机制学习笔记<一>

首先宏观看内核暴露给上层的接口:root@android:/ # cat /dev/snd/controlC0 pcmC0D10p pcmC0D13c pcmC0D15c pcmC0D2c pcmC0D3c pcmC0D5p pcmC0D8cpcmC0D0c pcmC0D11p pcmC0D13p pcmC0D15p pcmC0D2p pcmC0D3p pcmC0D6c pcmC0D9

2014-11-04 21:26:02

做高通平台安卓驱动感言

第二次写这类博客,之前还是求职期间写的面试之类的经历。          不知不觉做驱动再过2个月就3年了,可以说这3年学习到的很多,老大或者同事们的指教,针对性通过百度等搜索等,还有就是自己一边工作一边自己研究到的。知识,解决问题的能力也是慢慢积累起来的。这二年多来一直在做驱动,由开始开始接触调试LCD  TP等等,每次会重复做事,但是自己学习到的也很多,学会分析关键问题,掌握一些驱

2014-10-13 22:23:03

linux内核notifier机制 linux通知链

在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通 知链机制来获取由其它模块或子系统产生的它感兴趣的某些事 件。使用notifier由通知者可以传递给被通知者整形参数与指针,在linux中有许多地 方用到,比如reboot通知,cpu调频通知,电池低 电警报等等。熟悉使用notifier有助于驱动开发。notifier_block结构:s

2014-09-23 21:02:18

Linux环境下USB的原理、驱动和配置

作者:北京中科红旗软件技术有限公司 嵌入式工程师 梁国军来源:CSDN本文关键词: Linux USB作者为北京中科红旗软件技术有限公司 嵌入式工程师 梁国军随着生活水平的提高,人们对USB设备的使用也越来越多,鉴于Linux在硬件配置上尚不能全部即插即用,因此关于Linux如何配置和使用,成为困扰我们的一大问题。什么是USB?USB是英文U

2014-09-22 23:10:57

耳机接口pin脚定义

耳机接口pin脚定义耳机有两种标准:国标LRMICGND   欧标:LRGNDMIC测量方法:左声道或者右声道 与另外pin脚间电阻有30欧姆左右说明是测量pin脚是GND;

2014-09-22 22:11:53

从linux usb bus节点来认识usb linux usb认识

首先从dmesg来认识usb:[   19.610046] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Controller using HSIC[   19.620391] msm_hsic_host msm_hsic_host: new USB bus registered, assigned bus number 1[   19

2014-09-22 21:34:35

安卓kernel自主唤醒系统方法—设置alarm

#include 1:定义alarm变量:struct alarm  xx_alarm;2:alarm绑定:alarm 触发时callback:static voidxx_callback(struct alarm *alarm){     structchip *chip = container_of(alarm, structchip,

2014-09-17 22:45:18

Linux USB驱动工作流程

1. USB主机在Linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通信。Li

2014-09-13 20:40:39

linux kernel将buf保存到文件做法 很好的调试方法

linux kernel将关键信息保存到文件做法      很好的调试方法下面有2个示例:    1:保存机器从开机到结束的VBATT;    2:保存uart接收到的数据到文件;意义不多说了。以下是代码:#include #include #include static struct file *fp =NULL;int write_to_file

2014-09-05 21:46:00

linux网卡数据流 发送与接收

通常在驱动中看见的网卡代码很多,但是都离不开发送与接收,掌握好骨干也就好阅读网卡驱动了。数据发送 :发送函数:xxx_start_xmit()上层封装好了sk_buff丢进kernel后,buf存储在skb->data中,通 过 xxx_start_xmit(),发送出去。下面的实例是通过写入某个设备节点发送出去,当然这个设备肯定是串口或者sdio等传输设备,也可以直接

2014-09-03 21:34:11

linux sdio card休眠处理 sdio card removed解决办法

最近调试几款sdio card suspend时都会出现sdio card removed,之后 要么死机要么模块不能正常工作,根本原因也就是休眠没有处理好。昨天在博通网卡上终于找到了解决方法。         1:host端需要设置nonremovable,软件设置:mmc->caps |= MMC_CAP_NONREMOVABLE;         2:host端需要设置k

2014-09-02 21:25:56

linux runtime pm机制的深入理解

一:runtime机制说明    何为runtime机制?也就是系统在非睡眠状态,设备在空闲时可以进入runtime suspend状态同时不依赖系统wake_lock机制,非空闲时执行runtime resume使得设备进入正常工作状态。    主要代码放在Runtime.c (drivers\base\power)中,同时附带的Runtime_pm.txt (documentati

2014-07-24 21:26:50

Android通过tcpdump抓包

1. 手机要有root权限2. 下载tcpdump   http://www.strazzere.com/android/tcpdump3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump4. adb shell chmod 6755 /data/local/tcpdump5, adb shell,

2014-06-24 22:08:50

高通平台串口调试 AP与模块串口通讯调试总结

1:检查AP端串口配置是否ok:a:高通平台查看DMA传输:echo 1 > /sys/kernel/debug/msm_serial_hsl/loopback.0 //打开回环开关adb shell cat /dev/ttyHSL1另起窗口# adb shell# echo 11111111 > /dev/ttyHSL1若DMA通道ok,控制台会循环显示;b:查看

2014-04-22 22:05:29

android alarm底层理解

分享以前调试alarm关机闹钟时,写的关于alarm的总结;    alarm上层调用包括RTC唤醒和闹钟,前者使用的更频繁,接口一样;上层应用频繁调用rtc唤醒系统会增加功耗,所有有些厂家做了所谓的同步心跳技术来统一规划RTC唤醒系统;    alarm本质是底层起了timer,在系统未睡眠时当达到上层设定时间之后timer会trigger同时调用alarm的回调函数来改变全局变量,从而

2014-03-28 21:53:46

linux 进程睡眠与wait_even t_interruptible()分析

驱动中最底层处理buffer通常会对该进程睡眠和唤醒操作,比如上层写入buffer时,内核buffer缓冲区是满的,那么写入进程需要阻塞住,直到内核buffer缓冲区可以容纳上层写入的buffer才唤醒该进程。首先必须认清一个事实:先将进程置为INTERRUPTIBLE,再调用schedule()后本进程才睡眠;而不是执行set_current_state(TASK_INTERRUPT

2014-03-19 22:38:24

查看更多

勋章 我的勋章
    暂无奖章