- 博客(20)
- 资源 (11)
- 收藏
- 关注
转载 device_driver结构体
<br />一、定义:<br />struct device_driver结构体被定义在/include/linux/device.h,原型是:124struct device_driver {125 const char * name;126 struct bus_type * bus;127128 struct kobjectkobj;129 struct klistklist_devices;130
2010-09-20 10:37:00 3889
转载 Linux 下如何 做patch 和打patch
<br />1. 制作patch<br />diff -crN Component_org Component > 01_Component_xxx.patch<br />2. 打patch<br />patch -pl < ./01_Component_xxx.patch<br />3. 使用quilt 管理patch<br /># tar xvjf prj-0.1-patches.tar.bz2 Component/<br /># quilt push -a <== 打series所有补丁<br />
2010-09-16 19:44:00 2359
转载 Android 加速度传感器 (G-Sensor) 收
<br />Android 加速度传感器的类型是 Sensor.TYPE_ACCELEROMETER <br /> <br />通过 android.hardware.SensorEvent 返回加速度传感器值。 <br /> <br />加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是 <br /> <br />values[0]: x-axis 方向加速度 <br />values[1]: y-axis 方向加速度 <br />values[2]: z
2010-09-16 19:26:00 5335
转载 浅析dev目录下设备文件mknod节点gid,uid和mode的如何方便设置
<br />浅析dev目录下设备文件mknod节点gid,uid和mode的如何方便设置<br /><br />init<br />=>handle_device_fd 收到uevent信息<br />=>handle_device_event<br />=><br />staticvoid handle_device_event(struct uevent *uevent)<br />{<br /> ...<br /> /* are we block or char? where should
2010-09-16 10:35:00 2065
转载 Android init初始化程序分析
<br />/system/core/init初始化程序<br /> <br />1.执行sigaction函数,对SIGCHILD信号进行处理。实际上暂时屏蔽<br />2.设置umask来清空后面创建文件的mask<br />3. 创建文件系统mount point & mount 内存文件系统<br />4. open_devnull_stdio 0 1 2 is the fd. They are all the file descriptor of /dev/__null__<br />5.open
2010-09-15 12:38:00 1902
转载 Android之 BatteryService
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService battery = new BatteryService(context); ServiceManager.ad
2010-09-15 11:29:00 2462
转载 Linux驱动程序开发 - 设备驱动模型初探
<br />从这一章开始,我们将详细的介绍Linux的设备驱动模型。Linux设备驱动模型是一个相当复杂的系统,对于初学者来说真有些无从入手。而且更加困难的是,随着新的Linux Kernel的release,Linux的设备驱动模型总会有或大或小的变化,我们将尽量展现 Linux Kernel 的这种变化。<br /><br />早期的Linux内核(版本2.4之前)并没有实现一个统一的设备模型,设备节点的创建一般是mknod命令手动创建或利用devfs文件系统创建。早期的Linux发行版一般会采用手动创
2010-09-15 11:01:00 1597 1
转载 嵌入式C语言中的volatile关键字
<br />/*********以下是转载《16道嵌入式C语言面试题中的一题》***********/<br />关键字volatile有什么含意 并给出三个不同的例子。 <br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去 <br />假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读 <br />取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br />1). 并行设备的硬件寄存器(如:状
2010-09-14 10:26:00 1075
转载 linux内核register_chrdev_region()系列函数
<br /> 内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。其中,register_chrdev_region()是为提前知道<br />设备的主次设备号的设备分配设备编号。alloc_chrdev_region() 是动态分配主次设备号。register_chrdev()。是老版本的设备号注册方式,他只分配主设备号。从设备号在mknod的时候指定。<br
2010-09-12 17:46:00 1033 1
转载 Android 的用户层 uevent处理机制
<br />摘录几篇android研发日志<br />1 http://blog.csdn.net/linweig/archive/2010/06/01/5640697.aspx<br />Firmware 加载原理分析----分析的比较透彻,我在wifimodule调试时遇到的问题几乎跟这个一样,不过我采取了另外一个方法,直接用kernel的read和write了,没有使用request_firmware,有空小结下。<br />前言 <br /> 前段时间移植 wi
2010-09-10 11:49:00 3147
转载 Linux 用户态与内核态的交互——netlink 篇
<br />[size=4]Linux 用户态与内核态的交互 <br />——netlink 篇[/size] <br /><br />作者:Kendo <br />2006-9-3 <br /><br />这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载: <br />http://www-128.ibm.com/developerworks/cn/linux/l-netlink/imp2.tar.gz <br /><
2010-09-10 10:30:00 903
转载 Linux 2.6 字符设备驱动程序
<br />○、说明 <br />笔记适用于Linux的2.6.10以后的内核。<br />笔记以Linux Device Driver3提供的scull程序(scull目录中的main.c和scull.h)为记录主线,并以该驱动程序中的各种系统调用和函数调用流程为记录顺序。比如,module_init( )和module_exit( )为相对应的一对系统调用,一般书籍中都会放在一起讨论,但是本笔记却不会这样,而是在需要调用的时候才会涉及,因此module_init( )会放在笔记开始时,也就是刚加载mod
2010-09-10 09:36:00 719
转载 tolower
<br />原型:extern int tolower(int c);<br /> <br /> 用法:#include <ctype.h><br /> <br /> 功能:将字符c转换为小写英文字母<br /> <br /> 说明:如果c为大写英文字母,则返回对应的小写字母;否则返回原来的值。<br /> <br /> 举例:<br /><br /> // tolower.c<br /> <br /> #include <syslib.h><br />
2010-09-09 16:44:00 627
转载 isspace
<br />原型:extern int isspace(int c);<br /> <br /> 用法:#include <ctype.h><br /> <br /> 功能:判断字符c是否为空白符<br /> <br /> 说明:当c为空白符时,返回非零值,否则返回零。<br /> 空白符指空格、水平制表、垂直制表、换页、回车和换行符。<br /> <br /> 举例:<br /><br /> // isspace.c<br /> <br /> #inc
2010-09-09 16:42:00 1047
转载 strstr
原型:extern char *strstr(char *haystack, char *needle); 用法:#include 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例:
2010-09-09 16:41:00 831
转载 linux内核基本数据类型总结
<br />对linux内核的数据类型做一下总结。<br />下面部分内容参考了:http://book.csdn.net/bookfiles/12/100126.shtml<br />当Linux内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。在编译内核时使用 -Wall -Wstrict-prototypes选项,可以避免很多错误的发生。<br />内核使用的基本数据类型主要有:<br />ØØ int 标准C语言整数类型;<br />ØØ u32
2010-09-08 16:30:00 889
转载 linux内核基本数据类型总结
<br />对linux内核的数据类型做一下总结。<br />下面部分内容参考了:http://book.csdn.net/bookfiles/12/100126.shtml<br />当Linux内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。在编译内核时使用 -Wall -Wstrict-prototypes选项,可以避免很多错误的发生。<br />内核使用的基本数据类型主要有:<br />ØØ int 标准C语言整数类型;<br />ØØ u32
2010-09-08 16:25:00 751
转载 android JNI 学习笔记
Android JNI 使用的数据结构JNINativeMethod详解Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下:typedef struct {const char* name;const char* signature;void* fnPtr;} JNINativeMethod;第一个变量na
2010-09-01 17:28:00 4647
转载 malloc,calloc,realloc等内存分配函数区别
<br />三个函数的声明分别是:<br />void* realloc(void* ptr, unsigned newsize);<br />void* malloc(unsigned size);<br />void* calloc(size_t nelem, size_t elsize);<br />都在stdlib.h函数库内<br />它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL<br />malloc用于申请一段新的地址,参数size为需要内存空间的长度,如:<br />cha
2010-09-01 10:58:00 748
原创 android系统关机流程
在android层通过系统调用reboot(arg)调用内核中的sys_reboot,具体流程如下: reboot——>sys_reboot()——>kernel_power_off()——>machine_power_off()——>pm_power_off();pm_power_off 是一个函数指针,他指向和具体硬件平台相关的关机操作函数。 和sys_reboot相关的系统调用在source/kernel/sys.c中实现,然后在source/asm-arm/unistd.h中添加
2010-09-01 10:44:00 4153
linux2.6在s3c2410上全线移植
2010-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人