
嵌入式android Linux驱动
文章平均质量分 70
我为自己袋盐
牛13
展开
-
RIL
在上一篇博文中我讲了如何在Android中不启动界面连接wifi,在这篇博文中我将讲如何不启动界面连接手机网络。Android的RIL(Radio Interface Layer)模块提供Android telephony服务和radio硬件之间的一个抽象层。RIL模块的架构如下图所示最上面的是Android的应用程序,比如拨号、短信息等程序,这些程序调用Application Fra转载 2013-03-02 20:45:09 · 4346 阅读 · 0 评论 -
IO / Linux系统对IO端口和IO内存的管理
一、I/O端口 端口(port)是接口电路中能被CPU直接访问的寄存器的地址。几乎每一种外设都是通过读写设备上的寄存器来进行的。CPU通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。 二、IO内存 例如,在PC上可以插上转载 2012-12-10 12:59:28 · 600 阅读 · 0 评论 -
Android系统的开机画面显示过程分析
好几个月都没有更新过博客了,从今天开始,老罗将尝试对Android系统的UI实现作一个系统的分析,也算是落实之前所作出的承诺。提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统UI实现的分析之路。转载 2012-12-09 21:51:53 · 964 阅读 · 0 评论 -
Linux ALSA声卡驱动
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,转载 2012-12-10 13:08:08 · 2292 阅读 · 0 评论 -
Linux那些事儿之我是Hub(9)While You Were Sleeping(二)
老实说,从函数一个开始的598行直到627行都没有什么可说的.其中需要一提的是,606行,调用usb_buffer_alloc()申请内存,赋给hub->buffer.614行,调用kmalloc()申请内存,赋给hub->status.622行,调用kmalloc()申请内存,赋给hub->descriptor.当然也别忘了这中间的某行,初始化一把互斥锁,hub->status_mutex.以后转载 2012-11-30 23:06:45 · 4064 阅读 · 0 评论 -
Linux那些事儿之我是Hub(8)While You Were Sleeping(一)
最近看了热播的电视剧>,赵宝刚导演的转型之作.里面李小璐和文章演的那对小夫妻甚是搞笑.这部片子其实号称励志篇但实际上一点也不励志,就是搞笑,像我这种严肃的人向来不喜欢这些搞笑,不过里面李小璐扮演的杨晓芸对文章演的那个向南的一番对话倒是让我觉得颇为感慨.杨晓芸一心希望向南能够有理想有目标,而向南却非常满足于现状,而这种矛盾间接导致了杨晓芸对丈夫的失望并且最终两个人走向了离婚.其实我就是一个没有目标的转载 2012-11-30 22:46:50 · 1478 阅读 · 0 评论 -
Linux那些事儿之我是Hub(7)
朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是指对初始条件敏感性的一种依赖现象.蝴蝶效应的原因在于蝴蝶翅膀的运动,导致其身边的空气系统发生变化,并引起微弱气流的产生,而微弱气流的产生又会引起它四周空气或其它系统产生相应的变化,由此引起连锁反应,最终导转载 2012-11-30 22:46:13 · 581 阅读 · 0 评论 -
Linux那些事儿之我是Hub(6)
话说因为hub驱动无所事事,所以hub_thread()进入了睡眠,直到某一天,hub_probe被调用.所以我们来看hub_probe().这个函数来自drivers/usb/hub.c,其作用就如同当初我们在usb-storage中的那个storage_probe()一样. 887 static int hub_probe(struct usb_interface *intf,转载 2012-11-30 22:45:01 · 809 阅读 · 0 评论 -
usb storage
usb驱动分析一:http://wenku.baidu.com/view/fbce5512a2161479171128f5.html USB驱动分析(二) 分类: USB驱动2012-07-18 10:59615人阅读评论(0)收藏举报structinterfacedescriptor数据结构semaphoretable转载 2013-03-03 21:19:17 · 6011 阅读 · 0 评论 -
android自动屏幕旋转流程分析
在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox,如果我们勾选checkbox的话当你手机屏幕就会根据重量自动旋转,那么我们就分析一下这个过程:在Display_settings.xml文件中我们可以找到:android:key="accelerometer"and转载 2013-03-02 18:23:29 · 9399 阅读 · 0 评论 -
Android系统默认值的设置
原文链接地址:http://blog.youkuaiyun.com/bingking88/article/details/8558221项目接近尾声,今天恰好也要初始化一下系统里的默认值,google了一下,有时就得做个拿来主义,没有时才自己做轮子滴嘛,呵呵1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一转载 2013-03-02 18:22:37 · 947 阅读 · 0 评论 -
android 3g
一、pppd相关文件 Android ril相关的代码和脚本主要有: android/hardware/ril/reference_ril/ (reference_ril.c) android/hardware/ril/rild android/extern/ppp/pppd android/extern/ppp/chat android转载 2013-03-02 11:15:41 · 1325 阅读 · 0 评论 -
命令行模拟拨打电话、短信
1.启动android emulator,查看标题栏找出端口。一般是android emulator (5554),其中5554就是端口。2.打开命令行,输入telnet localhost 5554。程序将会连接到android console,返回Android Console: type 'help' for a list of commandsOK模拟电话打入gsm转载 2013-03-02 20:54:17 · 7761 阅读 · 0 评论 -
android 电源管理
1. 介绍.... 42. 电池管理.... 42.1. FrameWork.. 52.1.1. 监听... 52.1.1.1. UEventObserver的实现... 62.1.1.2. uevent 82.1.2. 状态读取... 92.1.3. 更新显示... 92.2.转载 2013-03-02 19:09:12 · 3695 阅读 · 0 评论 -
android 按键处理
原文地址链接:http://blog.youkuaiyun.com/bingking88/article/details/8517953移植android的键盘和按键(1)Android使用标准的linux输入事件设备(/dev/input目录下)和驱动,按键定义在内核include/linux/input.h文件中,按键定义形式如下:#define KEY_ESC 1转载 2013-03-02 18:20:59 · 1825 阅读 · 0 评论 -
嵌入式LINUX环境下视频采集知识
Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。 一、Video for Linux two 在Linux下,所有转载 2013-03-02 19:13:08 · 4351 阅读 · 0 评论 -
Android通过JNI调用驱动程序(完全解析实例)
要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口,去操作某个驱动节点,实现read,writer ioctl等操作!这对底层驱动开发人员是很重要的一个调试通道,也是android 系统下提供一些特殊功能接口的方法!本文前提:我们假设已经写了一个驱动程序,它是控制LED的亮灭的,并且创建了一个节点:/dev/vib,也就是通过open这个vib节点,可以rea转载 2013-03-02 19:31:01 · 905 阅读 · 0 评论 -
iperf 测试wifi速率rx偏低解决方案.
以前用iperf测试wifi的throughput的时候,n/g模式的rx只有tx的一半,后来在跟iperf参数的时候加了"-w 216k"基本就正常了,还有多个Iperf进程也会影响测试结果,比如测试速率波动比较大,g模式的rx会比tx偏小将近一半.http://blog.youkuaiyun.com/z642010820/article/details/7341476关于wifi文章原创 2011-11-06 22:24:28 · 8919 阅读 · 0 评论 -
android 2.3 ethernet
用过Android手机的人都知道, 如果附近有wifi信号, 当使能Wifi的时候, 系统就会通过wifi联网, 当wifi信号消失或者你手动禁止wifi的时候, 系统就会通过Mobile手机网络上网。 这就引出了网络管理的概念, 当有很多网络可用的时候, 系统要决定通过哪个网络联网。 当一个当前突然断开时, 系统要想办法通过其它途径联网。 Android系统中对支持的网络并不是公转载 2013-03-02 19:05:02 · 2321 阅读 · 0 评论 -
ext4格式的 system.img 怎么修改
$file system.img就可以看到这个文件是个什么格式的了system.img: Linux rev 1.0 ext4 filesystem data..gingerbread的system.img缺省是ext4格式的,使用mount命令将system.imgmount到某个目录下,然后用编译android framework时生成的make转载 2013-03-02 18:28:03 · 6330 阅读 · 0 评论 -
Linux那些事儿之我是Hub(5)
hub_thread()中还有一个函数没有讲.它就是try_to_freeze().这是电源管理相关的.对大多数人来说,关于这个函数,了解就可以了.以下的内容就当科普性质吧,也算哥们儿为奥运做点贡献,提高国民科学文化知识水平.随着Linux开始支持suspended之后,西方的资本家们提倡,每一个内核进程都应该在适当的时候,调用try_to_freeze().什么意思呢?有这样一个flag,PF_转载 2012-11-30 22:43:59 · 1177 阅读 · 0 评论 -
Linux那些事儿之我是Hub(4)
这一节我们讲队列.从前在乡下的时候是不用排队的,村里的人们都很谦让,而且人本来又不多.后来到了县城里,县城里不大,大家去走亲戚去串门去逛街不用坐车不用排队,除了街上的游戏厅人多一点以外,别的地方人都不是很多,陪妈妈去菜市场买菜也不用排队.后来到了上海,发现去食堂吃饭要排队,开学报道要排队,在人民广场等回复旦的123路公共汽车要排队,考试成绩不好去教务处交重修费要排队,甚至连追求一个女孩子也转载 2012-11-30 22:42:53 · 1812 阅读 · 0 评论 -
Linux那些事儿之我是Hub(3)
usb_register()和usb_deregister()这两个函数我们当初分析usb storage的时候就已经见到过了.当时我们就说过了,这个函数是用来向usb核心层,即usb core,注册一个usb设备驱动的.那年我们注册了一个struct usb_driver usb_storage_driver.而这里我们注册的是hub的驱动程序所对应的struct usb_driver结构体变量转载 2012-11-30 22:41:25 · 1620 阅读 · 0 评论 -
Linux设备驱动编程之阻塞与非阻塞
原文地址:http://blog.youkuaiyun.com/hongjiujing/article/details/4104544转载 2012-07-28 23:11:23 · 516 阅读 · 0 评论 -
内核态和用户态通讯知识收集
在一台运行 Linux 的计算机中,CPU 在任何时候只会有如下四种状态: 【1】 在处理一个硬中断。 【2】 在处理一个软中断,如 softirq、tasklet 和 bh。 【3】 运行于内核态,但有进程上下文,即与一个进程相关。 【4】 运行一个用户态进程。 1. Linux中的进程间通信机制源自于Unix平台上的进程通信机制原创 2012-08-11 16:51:45 · 4844 阅读 · 0 评论 -
uboot和kernel传递参数
原文地址:http://blog.youkuaiyun.com/liangkaiming/article/details/5984800U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式。另外一种就是现在的 2.6内核在用的参数链表 (tagged list转载 2012-06-03 16:29:51 · 3559 阅读 · 0 评论 -
示波器基本用法小结
1.选择channel即信号输入通道.2.预置面板各开关旋钮,调节亮度(辉度)和聚焦按钮,调节的度为图像清晰为主,调节水平扫描旋钮和垂直灵敏度调节旋钮即表示垂直方向每格幅度为多少伏特和水平方向每格时间为多少3.调节垂直和水平移动调节旋钮让基线位置在屏幕中间于水平坐标刻度基本重合.4.触发方式选择:示波器通常有四种触发方式(1)常态(NORM):无信号时,屏幕上无显示;有信号时,与电原创 2012-05-06 17:02:10 · 3253 阅读 · 0 评论 -
lcm驱动简单认识
在Uboot中和Kernel中都有lcm初始化的操作,所以我们在解决lcm一些问题的时候就要分析其是在uboot中还是在Kernel中还是两者皆有,一些平台在uboot中有初始化而在kernel里有初始化这就要看具体平台了.在解决开机的时候进入Uboot logo的时候如果有闪屏出现一般都是背光开早了,我们需要在开背光以前加一个延时几百个毫秒就够了.另外要保证在设置完所有要显示的图片后再打开背光.原创 2012-04-22 16:10:49 · 1317 阅读 · 0 评论 -
延时函数
#include 内核空间udelay(int n);//延时n个微妙,1s=1000000微妙.用于比较小的delay.mdelay(int n));//延时n个毫秒,1s=1000微妙.ndelay(int n));//延时n个纳秒,1s=1000000000微妙.这几个函数会让cpu死循环,导致cpu忙等待.usleep(int n);//延时n个微妙,1s=10原创 2012-04-30 11:38:56 · 5887 阅读 · 0 评论 -
为Android应用程序读取/dev下设备而提权(一)
原文地址:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6803593倘若应用程序需要对/dev/xxx进行读写操作,就需要提升其权限。提权方法不唯一,需要根据具体需求情况而选择。归根结底,终究都落到chmod 777 /dev/xxx 上,不同的是,chmod操作被执行在何时何地,在此做个分析总结。 内核启动后会执行/sy转载 2012-04-03 17:07:10 · 856 阅读 · 0 评论 -
Android cts all pass 全攻略
原文地址:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6633512为什么要进行cts测试 Android兼容性测试(CTS)和连带的兼容性定义文档(CDD),是一个确保终端设备与特定版本Android兼容的自管理程序。CTS测试集包含大约24,000个在Android设备上运行的测试用例,这些用例分别针对电话、图形、相机转载 2012-04-03 17:10:33 · 631 阅读 · 0 评论 -
为Android应用程序读取/dev下设备而提权(二)
原文地址:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6966800在为Android应用程序读取/dev下设备而提权(一)中,简单总结了提权的两种方法:device_init和init.rc。在此篇文章中,我将详细总结的是稍一不留神,就容易把人弄晕乎的init.c、device_init和init.rc三者之间的关系,TA们到转载 2012-04-03 17:08:53 · 741 阅读 · 0 评论 -
lcd timg的理解
所谓调lcd timing就是去调lcd时序,一般是6个部分:HFPD(在一行扫描以前需要多少个像素时钟),HBPD(一行扫描结束到下一行扫描开始需要多少个像素时钟),VFPD(一帧开始之前需要多少个行时钟),VBFD(一帧结束到下一帧开始需要多少个行时钟).VSPW(指的是VSYNC处于高电平时的线的数目),HSPW(指的是HSYNC处于高电平时的VCLK的数目),这个可以根据mcu的lcd c原创 2012-04-30 11:47:54 · 5828 阅读 · 1 评论 -
中断中处理延时及一些函数的调用规则(中断调i2c驱动有感)
转自:http://blog.youkuaiyun.com/xiyu_1986/article/details/69969271,中断处理程序中不能使用有睡眠功能的函数,如ioremap,kmalloc,msleep等,理由是中断程序并不是进程,没有进程的概念,因此就没有休眠的概念;2,中断处理程序中的延时可以用忙等待函数来代替,如ndelay,udelay,mdelay等,这些函数在实现上本质是根据转载 2012-08-26 00:08:55 · 4704 阅读 · 2 评论 -
Linux那些事儿之我是Hub(2)
莎士比亚曾经说过,不懂hub是怎么工作的就等于不知道usb设备驱动是怎么工作的.这句话一点没错,因为usb设备的初始化都是hub这边发起的,通常我们写usb设备驱动程序都是在已经得到了一个struct usb_interface指针的情况下开始probe工作,可是我要问你,你的struct usb_interface从哪来的?你以为你的设备天生丽质?长得比较帅?一插入usb口就有了?如果有人说是的转载 2012-11-30 22:40:40 · 928 阅读 · 0 评论 -
usb驱动程序分析
usb驱动是linux内核中比较复杂的驱动之一,因此,大多数usb教程建议从usb-skeleton开始学习usb驱动。个人认为这是相当正确的,usb-sekelton提供了一个usb驱动开发的模板,而且代码量较少,很适合初学者的学习。 记住,对于c语言的程序设计说,数据结构是整个程序的灵魂。因此,分析别人编写的代码的简洁的入口点就是高清代码中主要数据结构之间的关系。分析以usb-ske转载 2012-11-30 17:45:00 · 1311 阅读 · 0 评论 -
Android设备节点的动态管理
转自:http://blog.youkuaiyun.com/xiyu_1986/article/details/7173075在Android中,没有独立的类似于udev或者mdev的用户程序,这个功能集成到了init中做了。代码见:system/core/init/init.c文件,如下:if (ufds[0].revents == POLLIN)handle_device_fd(device_转载 2012-08-26 00:37:53 · 773 阅读 · 0 评论 -
Android Sensor传感器系统架构初探
转自:http://blog.youkuaiyun.com/xiyu_1986/article/details/71731401. 体系结构2. 数据结构3. 四大函数本文以重力感应器装置G-sensor为例探索Android的各层次结构。1. 体系结构 Android的体系结构可分为4个层次。第一层次 底层驱动层,包括标准Linux,Android核心驱动,A转载 2012-08-26 00:32:50 · 686 阅读 · 0 评论 -
Android 多点触摸接口
转自:http://blog.youkuaiyun.com/xiyu_1986/article/details/6996977简介 为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息。使用说明 单点触摸信息是以ABS承载并按一定顺序发送,如BTN_TOUCH、ABS_X、ABS_转载 2012-08-26 00:24:46 · 494 阅读 · 0 评论 -
linux开机logo 和 android开机logo 的修改
转自:http://blog.youkuaiyun.com/xiyu_1986/article/details/6610830一.设置LINUX内核启动LOGO 1、让内核支持启动LOGO 在内核目录中 make menuconfig Device Drivers ----> Graphics support ---->转载 2012-08-26 00:22:48 · 682 阅读 · 0 评论