自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 展讯8825分区表

展讯SC8825的分区表是放在uboot中,路径如下:u-boot/

2014-08-14 09:41:07 2501

转载 程序分text, data (initialized), bss, stack, heap几个段

根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap。data/bss/text: text段在内存中被映射为只读,但.data和.bss是可写的。bss是英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。BSS段属于静态内存分配

2013-08-27 14:48:38 1175

转载 Linux I2C驱动完全分析

本文用到的一些资源:   1. Source Insight软件   2. mini2440原理图。 下载地址http://wenku.baidu.com/view/0521ab8da0116c175f0e48fe.html   3. S3C2440 datasheet   4. AT24C08 datasheet   5. Bq27200 datashee

2013-03-01 16:49:17 941

转载 Linux ALSA声卡驱动之八:ASoC架构中的Platform

1.  Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_plat

2013-01-09 10:58:14 688

原创 pm_runtime

Early suspend mechanism is totally replaced by the concept of pm_runtime. Theusage is totally changed.Difference: Early suspend is totally controlled by kernel, while pm_runtimeexports interface t

2012-12-11 16:28:51 2108

原创 Linux设备模型

本文从四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.4.面向对象的思想在linux设备模型中的应用分析.一、底层数据结构:kobject,kset先说说模型的意义: 总体来说是为

2012-08-17 16:44:27 859

转载 android4.0 编译报错 Xmx2048m错误

1、Error occurred during initialization of VM Could not reserve enough space for object heap从字面上看是在初始化java Vm的时候不能获取足够的堆空间,于是修改了build/core/definition.mk文件中的编译core.jar和framework.jar时需要的-JXmx为1024m,此

2012-08-16 14:33:22 4880

转载 DMA_ZONE、dma_mask、coherent_dma_mask和dma bounce相关问题的澄清

本文针对ARM体系结构,参考的内核版本是2.6.32。1.       为什么存在DMA ZONE?原因是某些硬件的DMA引擎不能访问到所有的内存区域,因此,加上一个DMA ZONE,当使用GFP_DMA方式申请内存时,获得的内存限制在DMA_ZONE的范围内,这些特定的硬件需要使用GFP_DMA方式获得可以做DMA的内存;如果系统中所有的设备都可选址所有的内存,那么DMA ZONE覆

2012-08-03 13:46:28 2822

转载 Linux内存线性地址空间布局解析

Linux内存线性地址空间布局解析适用平台:i386      Linux内存线性地址空间大小为4GB,分为2个部分:用户空间部分(通常是3G)和内核空间部分(通常是1G)。在此我们主要关注内核地址空间部分。内核通过内核页全局目录来管理所有的物理内存,由于线形地址前3G空间为用户使用,内核页全局目录前768项(刚好3G)除0、1两项外全部为0,后256项(1G)用来管理所有

2012-08-03 10:53:55 757

转载 linux的物理内存空间与线性地址空间的的对应关系

在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以从

2012-08-03 10:53:03 1133

转载 linux CPU动态调频

针对sep4020的linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。

2012-04-19 10:21:08 8605 1

转载 Android GestureDetector手势识别类

为了加强鼠标响应事件,Android提供了GestureDetector手势识别类。通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling),具体包括以下几种:boolean  onDoubleTap(MotionEvent e) 解释:双击

2012-04-15 20:19:12 1090

转载 kmalloc与vmalloc区别

kmalloc, vmalloc分配的内存结构对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。  进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4

2012-03-31 11:01:53 1582

原创 SPI协议分析

SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。      SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序

2012-03-15 10:07:08 931

转载 android screen睡眠唤醒机制

在android中,屏幕(framebuffer)被看成为一个device,文件/sys/power/wait_for_fb_sleep和/sys/power/wait_for_fb_wakeup被kernel用来通知framework屏幕挂起或恢复了。在framework中有两个线程,一个是画图的主线程,在循环中它会首先检查kernel的事件通知信号并设置framebuffer是否可画,下面是示

2012-02-29 15:19:58 2606

转载 关于Linux Kernel and Android 休眠与唤醒

简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状 态来延长电池的续航时间.这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作 的, 还有Android中如何把这部分和Linux的机制联系起来的.国际化 版本信息Linux Kernel: v2.6.28 Android: v2.0对于休眠(sus

2012-02-23 10:43:36 1200

原创 Android的Linux内核的电源管理:Early Suspend

1. 用户空间的接口        在kernel/power/main.c中,定义了一组sysfs的属性文件,其中一个定义是:        power_attr(state);        把这个宏展开后: staticstruct kobj_attribute state_attr = { \.attr =

2011-12-30 14:59:31 1235 1

原创 android重启流程

我这边主要是讲下android reboot走的流程以及所设计的代码,我这边直接从framework层开始。framework会提供系统重启的接口:代码路径:frameworks/base/core/java/android/os/Power.java    public static void reboot(String reason) throws IOException

2011-12-29 17:24:47 9891 1

转载 对I2C协议的理解

网上发现这篇对于I2C的文章写的很不错一. 技术性能:    工作速率有100K和400K两种;    支持多机通讯;    支持多主控模块,但同一时刻只允许有一个主控;          由数据线SDA和时钟SCL构成的串行总线;    每个电路和模块都有唯一的地址;                        每个器件可以使用独立电源二. 基本工作原理:

2011-12-28 17:56:12 821

转载 Copy_from_user函数详细分析

copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0.这么简单的一个函数却含盖了许多关于内核方面的知识,比如内核关于异常出错的处理.从用户空间拷贝数据到内核中时必须非常小心,如果用户空间的数据地址是个非法的地址,或是超出用户空间的范围,或是那些地址还没有被映射到,都可能对内核产生很大的影响,如oops,或者被造成系统安全的影响.所

2011-12-13 15:28:07 1032 1

原创 Android耳机监测以及耳机按键监测

最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家。我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.java以及HookSwitchObserver.java,它们会直接读取/sys/class/switch/中某一特定的设备的state,比如"/sys/class/switch/h2w/sta

2011-12-13 15:21:15 9274 3

转载 WindowManager.LayoutParams类

最近为了解一个BUG看了下windowmanager,顺便转发一下看到的文章吧WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。   它的内容十分丰富。其实Windo

2011-10-19 10:20:12 805

原创 Android之input系统流程

按键或者触摸屏输入设备是最常用不过的设备,那么如果一个按键信息是如何从内核传递到android的呢,首先我们得先清楚Linux的input子系统框架,下面是我在公司自己写的一篇文档,现在先粘帖过来Linux之Input子系统分析  目前Android、QT等众多应用对于l

2011-10-14 13:46:14 15938

原创 Android的init进程是如何启动的

这里我就PXA的代码为例,说下Android系统是如何起来的,特别是Android启动的第一个进程,init进程是如何启动的。首先uboot会通过bootargs把rdinit的所在路径传递给kernel-->run_command("setenv bootargs rd

2011-10-14 10:38:09 5422 13

pm_runtime

android4.1 kernel3.4 pm_runtime

2012-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除