摘要:
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService battery = new BatteryService(context); ServiceManager.addService("battery", battery);========================== 阅读全文
摘要:
从这一章开始,我们将详细的介绍Linux的设备驱动模型。Linux设备驱动模型是一个相当复杂的系统,对于初学者来说真有些无从入手。而且更加困难的是,随着新的Linux Kernel的release,Linux的设备驱动模型总会有或大或小的变化,我们将尽量展现 Linux Kernel 的这种变化。早期的Linux内核(版本2.4之前)并没有实现一个统一的设备模型,设备节点的创建一般是mknod命令手动创建或利用devfs文件系统创建。早期的Linux发行版一般会采用手动创建的方式预先把通常用到的节点都创建出来,而嵌入式系统则会采用devfs的方式。起初Linux 2.6 内核还支持devfs, 阅读全文
摘要:
星际译王本地字典库下载地址:http://reciteword.cosoft.org.cn/stardict-iso/stardict-dic/zh_CN/ 安装方法:Install Dictionaries in Linux:To install these tarball dictionaries, do this:tar -xjvf a.tar.bz2mv a /usr/share/stardict/dic在linux上,下载后解压,然后移动到/usr/share/stardict/dic目录下。Install Dictionaries in Mac OS X:tar -xjvf ... 阅读全文
摘要:
/*********以下是转载《16道嵌入式C语言面试题中的一题》***********/关键字volatile有什么含意 并给出三个不同的例子。一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3). 多线程应用中被几个任务共享的变量回答不出这个问题.. 阅读全文
摘要:
内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。其中,register_chrdev_region()是为提前知道设备的主次设备号的设备分配设备编号。alloc_chrdev_region() 是动态分配主次设备号。register_chrdev()。是老版本的设备号注册方式,他只分配主设备号。从设备号在mknod的时候指定。内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_devic. 阅读全文
摘要:
摘录几篇android研发日志1 http://blog.csdn.net/linweig/archive/2010/06/01/5640697.aspxFirmware 加载原理分析----分析的比较透彻,我在wifimodule调试时遇到的问题几乎跟这个一样,不过我采取了另外一个方法,直接用kernel的read和write了,没有使用request_firmware,有空小结下。前言 前段时间移植 wifi 驱动到 android 的内核上,发现 firmware 的加载始终出错,问了几个人,都不是很了解,没办法,只好自己研究一下。 原理分析 从本质上来说, firmware 需要做.. 阅读全文
摘要:
最近想用LXDE,试了一天居然都不能用。用户体验太遭了。 我安装了Ubuntu Server10.04,然后用apt-get install lxde。登录后中文显示很好。但是当我打开一个程序后,那个程序的窗口就一路向右下方移动。屏幕随之狂闪。 我找了篇文档,安装了最新版本的lxde,其pcmanfm是0.97版本。结果还是如此。 我又安装了Debain系统,在Debian下安装lxde。居然也是同样的效果! 说明一下,我是在KVM虚拟机中运行的。但是这个应该没关系。 我自己的电脑上,我也是装的ubuntu-server,再加上ubuntu-desktop,然后再安装lxd... 阅读全文
摘要:
[size=4]Linux用户态与内核态的交互 ——netlink篇[/size] 作者:Kendo 2006-9-3 这是一篇学习笔记,主要是对《Linux系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载: http://www-128.ibm.com/developerworks/cn/linux/l-netlink/imp2.tar.gz 参考文档 《Linux系统内核空间与用户空间通信的实现与分析》 陈鑫 http://www-128.ibm.com/developerworks/cn/linux/l-netlink/?ca=dwcn-n 阅读全文
摘要:
○、说明 笔记适用于Linux的2.6.10以后的内核。笔记以Linux Device Driver3提供的scull程序(scull目录中的main.c和scull.h)为记录主线,并以该驱动程序中的各种系统调用和函数调用流程为记录顺序。比如,module_init( )和module_exit( )为相对应的一对系统调用,一般书籍中都会放在一起讨论,但是本笔记却不会这样,而是在需要调用的时候才会涉及,因此module_init( )会放在笔记开始时,也就是刚加载module时讨论,而module_exit( )则会放在笔记结束前,也就是要卸载module时再加以讨论。该笔记的的目的是为了对 阅读全文
摘要:
原型:extern int tolower(int c); 用法:#include <ctype.h> 功能:将字符c转换为小写英文字母 说明:如果c为大写英文字母,则返回对应的小写字母;否则返回原来的值。 举例: // tolower.c #include <syslib.h> #include <ctype.h> main() { char *s="Hello, World!"; int i; clrscr(); // clear screen printf("%s/n",s); for(i=0;i<strl 阅读全文