Linux 内核 Kernel
karry_vcent
这个作者很懒,什么都没留下…
展开
-
I2C子系统知识(一)
1.Linux的I2C驱动架构Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。设备驱动则是与挂在I2C总线上的具体的设备通讯的驱动。通过I2C总线驱动提供的函数,设备驱动可以忽略不同总线控制器的差异,不考虑其原创 2012-01-13 16:13:17 · 1347 阅读 · 0 评论 -
container_of
container_of在kernel.h中的声明:/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the type of the container struct th原创 2012-01-11 17:40:19 · 626 阅读 · 0 评论 -
wifi驱动移植 经典文章讲解
对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了网友的相关帖子后,最终还是移植成功了,,以便自己和他人查看学习:&&&& WIFI的基本架构 &&&&(这一部分比较重要,是一直wifi驱动的基础)1、wifi用户空间的程序和库:external/wpa_supplicant/生成库libwpaclient.so和守护进程w转载 2012-04-13 10:13:48 · 1543 阅读 · 1 评论 -
[Android] ramdisk.img的生成及解压
android编译后生成的ramdisk是一个gzip格式的文件# file ramdisk.imgramdisk.img: gzip compressed data, from Unix那么先解压,因为后缀不是.gz,所以用-s 选项gunzip -S .img ramdisk.img这样生成了一个新文件ramdisk查看是什么格式# file ramdi转载 2012-02-17 17:04:04 · 1461 阅读 · 0 评论 -
内核数据结构list_head 常用函数解析
list_for_each原型:#define list_for_each(pos, head)\for(pos = (head)->next,prefetch(pos->next); pos !=(head); \pos= pos->next,prefetch(pos->next))它实际上是一个 f转载 2012-02-25 09:35:20 · 1315 阅读 · 0 评论 -
Android init进程中鲜为人知的charger mode 模式
作者:K_Linux_Man假如基于Andriod系统平台的手机在没有硬件充电指示灯的情况下,你如何知道电池是否在充电呢,进入andriod系统才能进行充电指示,而我们有时候仅仅需要充电而不需要进入系统,一般的情况是,当你关机的时候,插上充电器,屏幕会出现充电的图标。这是如何做到的呢?android 为我们提供了一个c程序,在system/core/charger/目录下。首先说明原创 2012-02-26 09:45:41 · 11334 阅读 · 6 评论 -
内核调试技巧--kernel panic
举个kernel-panic的例子[ 2590.185432] Unable to handle kernel paging request at virtual address 00100110[ 2590.192874] pgd = c0004000[ 2590.192881] [00100110] *pgd=00000000[ 2590.192891] Internal原创 2012-02-24 16:39:21 · 12008 阅读 · 0 评论 -
linux内核调试技巧--current的应用
是什么?current 指针指向当前在运行的进程,内核代码可以通过使用 current 来使用进程特定的信息。指向 task_struct 的current指针在内核堆栈内,是一个全局项。为什么要用?查看当前谁在使用内核你关心的那段代码的时候。怎么用?printk(KERN_INFO "The cuurent process commond : \"%s\" the原创 2012-02-24 09:33:41 · 2060 阅读 · 0 评论 -
Android 开机logo动画
Android 开机会出现3个画面:1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片);2. Android平台启动初始化,出现"A N D R I O D"文字字样画面;3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。1、开机图片(Linux小企鹅) (Andr转载 2012-02-22 11:00:24 · 3509 阅读 · 1 评论 -
添加android 4.0开机音乐
Android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来,这段代码不支持音乐播放的,添加几段代码就能达到开机显示动画的时候播放音乐的效果了。添加如下代码:1.添加所需要的原创 2012-02-22 13:16:27 · 179 阅读 · 0 评论 -
添加android 4.0 开机音乐
Android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来,这段代码不支持音乐播放的,添加几段代码就能达到开机显示动画的时候播放音乐的效果了。添加如下代码:1.添加所需要的原创 2012-02-22 13:21:33 · 6155 阅读 · 14 评论 -
I2C子系统知识(二)
I2C总线驱动是对适配器端的实现,其含有适配器数据结构struct i2c_adapter,适配器算法数据结构struct i2c_algorithm。I2C设备驱动是对设备端的实现和控制,其含有设备驱动结构i2c_driver和设备客户端结构struct i2c_client。以下为i2c_driver结构体,里面提供了通用的操作i2c设备的接口函数.struct i2c_d原创 2012-01-17 17:11:37 · 3313 阅读 · 0 评论 -
MACH_START
在友善mini2440提供的linux2.6.32.2内核中,有如下定义:MACHINE_START(MINI2440, "FriendlyARM Mini2440 developmentboard").phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_VA_UART)>> 18) &0xfffc,.boot_par转载 2012-01-16 16:12:26 · 1064 阅读 · 0 评论 -
板级文件中的struct resource结构体
linux对挂接在4G总线空间上的设备实体的管理方式 -- struct resource/usr/src/linux-2.6.21.5/include/linux/ioport.hstruct resource { resource_size_t start; resource_size_t end; const char *name;转载 2012-01-17 09:58:33 · 3476 阅读 · 0 评论 -
GUN C 扩展之括号中的复合表达式
在linux的世界里,你可能会看到过很多没有见过的结构和语句方式,你可能不知道他们的用途,比如说括号中的复合表达式例如:#include #define max(x,y) \ ({ int z;\ if (x>y) z = x;\ else z = y;\ z;\ }) int main(int argc, char** argv){ max(3,5);原创 2013-02-05 15:44:15 · 1159 阅读 · 0 评论