- 博客(21)
- 资源 (1)
- 收藏
- 关注
转载 Android平台中振动器系统详解
一: 振动器系统结构和移植内容 振动器负责控制引动电话的振动功能,Android中的振动器系统是一个专供这方面功能的小系统,提供根据时间振动的功能。 振动器系统包含了驱动程序、硬件抽象层、JNI部分、Java框架类等几个部分,也向Java应用程序层提供了简单的API作为平台接口。 Android振动器系统的基本层次结构如图23-1所示。 图23-1 A
2012-06-29 15:25:09 980
转载 Linux设备驱动之I2C架构分析
http://soft.chinabyte.com/os/455/12259955.shtml一:前言 I2c是philips提出的外设总线。I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线。另外,I2C是一种多主机控制总线。它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以。而I2C是基于mu
2012-06-29 15:22:53 775
转载 内核中_init,_exit中的作用
http://blog.csdn.net/maopig/article/details/7409870__init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链接脚本来指导ld完成的。 对编译成module的代码和数据来说,当模块加载时,_
2012-06-20 17:03:00 768
转载 Linux驱动中的platform
**********************************************************************************************http://www.chineselinuxuniversity.net/articles/49421.shtml从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device
2012-06-20 17:01:05 5586
转载 wait和waitpid详解
http://hi.baidu.com/qiaoyongfeng/blog/item/3d6fc100bcf93e17738b6576.htmlwait的函数原型是: #include#include pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果
2012-06-13 15:54:48 236
转载 android启动--深入理解zygote
http://www.2cto.com/kf/201203/123062.html前一篇http://www.2cto.com/kf/201203/123061.html文章介绍了init进程的启动过程,其中就有解析init.rc脚本,而根据其内容配置启动了很多重要的服务:Servicemanager和zygote进程就奠定了Android的基础,建立了真正的android空间。
2012-06-13 15:51:45 980
原创 SW watchdog 分析
1. android framework层中的watchdog,它属于一种软件Watchdog实现。 a.接收系统内部reboot请求,重启系统。 b.监护SystemServer进程,防止系统死锁, 确保ActivityManagerService、WindowManagerService和 PowerManageService发生死锁后,退出SystemServer进程,让
2012-06-11 11:24:34 5897 2
原创 PDP backlight cannot work 和Backlight 的ASL不起作用(Riogrande Platform)
1. ADB Command: /sys/class/leds/lcd-backlight/brightness ,实际路径/sys/devices/i2c-0/2-0040/leds/lcd-backlight echo 0 > brightness \n echo 100 >brightness cat brightness2. Check system/co
2012-06-11 11:17:42 1299
原创 如何手动mount sdcard和检测到sd card
1. mount -t vfat /dev/block/mmcblk0p1 /mnt/sdcard; 不好用!2. [Framework 层]主要分析 system/vold/main.cpp, DirectVolume.cpp, Volume.cpp[void Volume::setState(int state); int Volume::mountVol()]3. [Framewor
2012-06-11 11:16:14 4619
原创 USB mass storage驱动分析
1. USB驱动代码在/drivers/usb/gadget下,有文件:android.c,其他驱动文件f_adb.c,f_mass_storage.c;其中android.c 依赖于f_adb.c 和 f_mass_storage.c(这两个文件之间无依赖关系)。2. usb_mass_storage重新mount一个分区; a. adb shell 进入/sys/devices/
2012-06-11 11:15:03 7708 1
原创 Android Socket 机制(即demoen 服务进程的机制)
1. init.rc 中有 service vold /system/bin/vold console socket vold stream 0660 root mount ioprio be 22. system\core\init\init.c 中init_parse_config_file("/init.rc");会解析; init_parse
2012-06-11 11:14:11 2644
原创 Kernel log 输出机制(Riogrande Platform)
1. dmesg 读取kernel 的log, system/core/toolbox/dmesg.c 文件中dmesg_main函数-->klogctl, 可以看到只支持dmesg -c,并且用dmesg显示kernel log不能连续显示(可从代码中看出来),用cat proc/kmsg 则可以连续显示kernel log.2. klogctl函数的定义在那? bionic/libc/ar
2012-06-11 11:12:19 8553
原创 System call 的分析
0. sysfs_write_file@kernel/fs/sysfs/file.c1. vfs_write@kernel/fs/read_write.c2. sys_write@kernel/fs/read_write.c有SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf, size_t, count
2012-06-11 11:10:13 4154
原创 System manager分析
0. 以下分析的是systemservice如何启动1. init.rc 中有 service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server socket zygote stream 666 onrestart write /proc/sysrq
2012-06-11 11:08:58 1351
转载 ServiceManager & SystemService
http://blog.csdn.net/xieqibao/article/details/6602820Android 之 ServiceManager与服务管理ServiceMananger是android中比较重要的一个进程,它是在init进程启动之后启动,从名字上就可以看出来它是用来管理系统中的service。比如:InputMethodService、Acti
2012-06-11 11:00:55 2386 1
原创 电池容量足够低如何触发自动关机(Riogrande platform&Qualcom platform)
1. 进入手机/sys/devices/platform/nmk-i2c.2/i2c-2/2-0040/leds/ 或 sys/class/leds/目录list如下 pwr-red,pwr-green,pwr-blue //控制充电led l-key-red,l-key-green,l-key-blue //控制left button led m-key-r
2012-06-05 15:52:49 11628 3
原创 Worknote-xin(blue platform)
一、如何下载代码和flash image1. https://wiki.sonyericsson.net/androiki/CM_information_of_Blue_Program a. maki是9.0.A.0.x, ics-blue-3.0 , https://wiki.sonyericsson.net/androiki/CM_information_of_Blue_Prog
2012-06-05 15:27:18 1441
原创 Charger&FuelGauge (Riogande platform)
1. *#*#4636#*#* 可查看 手机信息,电池信息2. https://wiki.sonyericsson.net/androiki/Fuel_Gauge_FAQ 如何抓fuel gauge 的log a. How to save kernel logs to phone memory $ adb shellmkdir /data/debugfsmo
2012-06-05 15:21:46 2426
原创 Power Manager的分析研究(wakelock)
1. Android Application 如何使用wakelock a. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);-->getSystemService@frameworks/base/core/java/android/view/contextthemewrapper.jav
2012-06-05 15:20:11 5877
原创 dynamic debug log输出机制
dynamic debug log输出机制0. 注意该机制只对 dev_dbg -> dynamic_dev_dbg定义的debug log输出加以控制1. 如何使用:(kernel/Documentation/dynamic-debug-howto.txt) mkdir /data/debugfs mount -t
2012-06-05 15:17:56 14753
转载 likely() and unlikely()
likely() and unlikely()The gcc C compiler has a built-in directive that optimizes conditional branches as either very likely taken or very unlikely taken. The compiler uses the directive to appropri
2012-06-04 11:01:03 618
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人