自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

转载 wake_up_interruptible 函数

功能:唤醒注册到等待队列上的进程原型:    #include    void wake_up_interruptible (wait_queue_head_t *q);说明:    唤醒 q 指定的注册在等待队列上的进程。该函数不能直接的立即唤醒进程,而是由调度程序转换上下文,调整为可运行状态。变量:q :  等待队列变量指针。  

2017-06-24 12:13:02 1806

转载 Android系统的开机画面显示过程分析

Android bootloader启动到kernel 分析:  Android Kernel - Boot Loader http://blog.csdn.net/luoshengyang/article/details/7691321             好几个月都没有更新过博客了,从今天开始,老罗将尝试对android系统的UI实现作一个系统的分析,也算是落实之前所作出的

2017-06-24 12:06:37 658

转载 Android 电源管理 -- wakelock机制

Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种:    第一种是永久的锁住,这样的锁除非显

2017-05-26 08:58:58 434

转载 RT throttling分析

Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的。当没有更高优先级的实时进程抢占,而此进程又由于bug等原因长时间运行,不调度其它进程,系统就会出现无响应。这里要分析的RT throttling就是针对此种情况的,它通过限制每个单位时间内分配给实时进程的CPU运行时间,来防止上述情况的出现。标准的设置是1s的时间内,实时进程的运行时间是950ms,其余

2017-05-23 14:40:35 2702 1

转载 SELinux简介以及一些常用命令

1. 简介      SELinux(Security-Enhanced Linux) 是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制(MAC)安全模块,是 Linux® 上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控

2017-05-17 17:27:14 2962

转载 如何设置SELinux 策略规则 ? 在Kernel Log 中出现"avc: denied" 要如何处理?

[Description]android KK 4.4 版本后,Google 默认启用了SELinux, 并会把SELinux 审查异常打印在kernel log 或者 android log(L 版本)中,对应的关键字是: "avc:  denied" 或者"avc: denied"如一行LOG:[ 17.285600].(0)[503:idmap]type=1400 audit(1

2017-05-17 10:19:29 616

转载 Git常用命令

来源:Robbin的自言自语Git配置git config --global user.name "robbin" git config --global user.email "fankai@gmail.com"git config --global color.ui truegit config --global alias.co checkoutgit confi

2017-05-05 11:17:06 210

转载 android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)

各位网友:最近发现我这篇文章转载的到处都是,有的则以原创存在,转载时请注明出处,还有文中错误的地方请指正!谢谢合作。     下面点lk方法适用于8660,8064。当然qrd则没有那么复杂。一:点亮lcd in kernel其实点亮lcd很简单必须保证以后几个步骤正确:1:确认Lcd信息所在文件被编译进去,并且lcd 和board name里面注册一质,倘若这部正确,那么log里

2017-05-05 08:56:58 1417

转载 git使用小技巧

与其他技术相比,Git应该拯救了更多开发人员的饭碗。只要你经常使用Git保存自己的工作,你就一直有机会可以将代码退回到之前的状态,因此就可以挽回那些你深夜里迷迷糊糊犯下的错误。尽管这么说,Git的命令行界面可是出了名的难掌握。接下来,就给大家介绍7个小技巧,最大限度发挥Git的作用。通常,大部分时间我们都只会用到add、commit、branch和push/pull这些命令。大部分人熟悉这

2017-05-03 18:01:02 185

转载 高通平台 lcd driver 调试小结

一、概述1.1 简介       本文档主要包括LCD模块的驱动流程分析、Framebuffer相关知识、Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解。1.2  开发环境         Android:4.0         Kernel: Linux3.0         Ubuntu:需要 10.0

2017-05-03 17:46:52 7185

转载 android gralloc流程分析for msm8960

原文转载自http://blog.csdn.net/g_salamander/article/details/8424334增加了Gralloc模块的平台背景和功能概述部分。对原文针对msm8960 Android display做了修正。增加了Surfaceflinger初始化FrameBufferNativeWindow的代码部分。平台中内存有ashmen、PMEM等多种内

2017-05-03 17:43:25 884

转载 Android display架构分析-SW架构分析(1-8)

参考:Android display架构分析二-SW架构分析Android display架构分析三-Kernel Space Display架构介绍Android display架构分析四-msm_fb.c 函数和数据结构介绍高通Android平台下关于display部分的几个关键问题高通Qc FB驱动 以及 LCD调试过程Android中的Frame

2017-05-03 17:42:13 716

转载 所谓Android Copybit--寥寥数语

Copybit HALSurfaceFlinger layer的compositionType有三种:HWC_FRAMEBUFFER的使用OpenGL ES来绘制;HWC_OVERLAY的使用Overlay Engine来合成;HWC_USE_COPYBIT的使用Copybit硬件加速绘制; MSM8xxx平台Jellybean代码中没有发现使用HWC_USE_COPYBI

2017-05-03 17:34:41 510

转载 SurfaceFlinger Layer Clip and Draw---大密度注释

/*  *收到VSYNC后 REFRESH显示 */413void SurfaceFlinger::onMessageReceived(int32_t what){419            // if we're in a global transaction, don't do anything.420            const uint32_t mask =

2017-05-03 17:10:55 520

转载 QCom MSM MDP显示驱动一些点的简记

简要记录了Qualcom MSM8xxx MDP Framebuffer驱动中的一些点。Framebuffer设备的sysfs330static int msm_fb_create_sysfs(struct platform_device *pdev)331{332         int rc;333         struct msm_fb_data_type *mfd

2017-05-03 17:09:52 614

转载 Android图形合成和显示系统---基于高通MSM8k MDP4平台

介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台。做为Android Display专题。SurfaceFlinger的详细介绍参见链接文章。Android GDI之SurfaceFlingerSurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是

2017-05-03 17:05:39 4793

转载 Android屏幕、键盘背光Framework和Linux led_classdev

转载并且对控制led的driver部分做了补充。亮度设置应用设计1.1 设置进度条范围背光设置是在:设置->声音和显示->亮度,通过进度条来设置的。文件:packages/apps/Settings/src/com/Android/settings/BrightnessPreference.Javaprivate static final int MINIMUM_BACKL

2017-05-03 17:03:14 671 1

转载 linux进程调度、进程切换原理详解

版权声明:转载时请以超链接形式标明文章原始出处http://wanderer-zjhit.blogbus.com/logs/156738683.html和作者信息及本声明思考:      在cfs就绪队列中,进程是否切换不是按照时间片到期考虑,而是给根据当前就绪进程数给出一个延迟周期,然后根据当前进程的权重,从而确定当前进程是否已经执行过长时间。      抢占问题:调用try

2017-05-03 17:01:09 846

转载 linux tasklet和workqueue的应用情景

当前的2.6版内核中,有三种可能的选择:softirq、tasklet和work queue。 tasklet基于softirq实现,所以两者很相近。work queue与它们完全不同,它靠内核线程实现。1、softirq       软中断支持SMP,同一个softirq可以在不同的CPU上同时运行,softirq必须是可重入的。软中断是在编译期间静态分配的,它不像tasklet

2017-05-03 16:29:03 419

转载 Linux中的工作队列

出处:http://www.cnblogs.com/wwang工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。工作队列是2.6内核开始引入的机制,在2.6.20之后,工作队列的数据结构发生了一些变化,因此本文分成

2017-05-03 15:49:25 189

原创 TP虚拟按键部分相关调试经验

1、搜索上层logMain.log:MotionEvent { action=;                                  //A区touch事件KeyEvent { action=action=ACTION_UP,keyCode=KEYCODE_BACK    //虚拟按键事件2、坐标信息路径虚拟按键的坐标信息写在/sys/boar

2017-05-03 11:45:03 1209

原创 MTK675电源管理笔记

1、电源PMIC操作函数 pmic上电下电:  pmic_config_interface(0x045A, 0x7, 0x7, 5);//SET VGP6 = 3.3V  pmic_config_interface(0x0434,1,0x1,15);  MDELAY(5);  pmic_config_interface(0x0456, 0x3, 0x7, 5

2017-05-03 11:34:25 1888

原创 MTK平台tear现象排查

检查TE是否正常开启,如果是工版,则可使用如下方式打开fps的log,查看TE信息:adb shellcd sys/kernel/debugecho fps:on>mtkfb然后查看mtklog,搜索“FPS”,若看到等待TE时间为0, 表示TE未正常开启,需要与LCM IC的FAE进一步确认开启流程 。若TE已经成功开启,依然有Teering现象,可从如下方面思考分析。1

2017-05-03 11:27:55 460

转载 MTK 软件设置路径(铃声、开关机动画、壁纸等)

1. uboot路径mediatek\custom\common\uboot\logo\hvga\hvga_kernel.bmpmediatek\custom\common\uboot\logo\hvga\hvga_uboot.bmp2. Android上层动画路径vendor\mediatek\project\artifacts\out\target\product\proj

2017-05-02 14:54:10 1056

转载 Android Power Management 实现

总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo)    接下来我们从Java应用层面,Android framework层面, Linux内核层面分别进行详细的讨论:  应用层的使用:  Android提供了现成android.os.

2017-05-02 14:41:40 416

转载 ndroid OS MTK6573 SD卡驱动浅析

首次出关于MTK方面的驱动文章,网上也很少有这方面的文章,所以我立志要写几篇这样的文章来引导刚出道的朋友们,咱们一起努力!大家都说MTK简单,但我个人做过高通平台一年时间,然后转而做MTK平台,感觉还是能学到东西的,代码并不比所谓的高通简单,只是它做的好,封装的好,所以做这块驱动可能开发者做的事情没高通多,所以大家觉得容易,学不到东西。但只要自己对技术执着,深入到架构的实现,还是能学到很多的。

2017-05-02 11:42:18 314

转载 framebuffer 子系统分析

一、常见结构体分析1、fb_info[cpp] view plain copyprint?struct fb_info {      int node;      int flags;      struct mutex lock;      /* 调用open/release/ioctl时的锁 */      struct mutex mm_l

2017-04-20 17:25:15 604

转载 android button light 流程分析(三) — framework

一、初始化信息首先看看Android中的几种电源状态定义,这几个值定义了不同的led开闭状态以及lcd背光的不同亮度模式:[java] view plain copyprint?// flags for setPowerState  private static final int SCREEN_ON_BIT          = 0x00000

2017-04-20 11:35:29 583

转载 android 休眠唤醒机制分析(三) — suspend

前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 — 深度休眠。在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。

2017-04-20 11:21:12 7639

转载 android 休眠唤醒机制分析(二) — early_suspend

early_suspend是Android休眠流程的第一阶段即浅度休眠,不会受到wake_lock的阻止,一般用于关闭lcd、tp等设备为运行的应用节约电能。Android的PowerManagerService会根据用户的操作情况调整电源状态,如果需要休眠则会调用到HAL层的set_screen_state()接口,在set_screen_state()中会向/sys/power/state节点

2017-04-20 11:05:59 1253

转载 getevent/sendevent 使用说明

这两天准备写一下input子系统的分析,过程中发现了两个好工具,呵呵,就是本文介绍的主角:getevent用于获取当前系统input设备的一些参数和实时事件的数据;sendevent用于发送input事件,这样在调试的时候遇到有的样机按键坏了或者触摸屏坏了就方便了,工具的源码位于Android SDK的system/core/toolbox下面。一、getevent首先看一下命令的用法

2017-04-20 10:46:30 435

转载 android 休眠唤醒机制分析(一) — wake_lock

Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作。wake_lock一般在关闭lcd、tp但系统仍然需要正常运行的情况下使用,比如听歌、传输很大的文件等。本文主要分析driver层wake_lock的实现。一、wake_lock 定义和接口[cpp] view plain

2017-04-19 10:02:30 1600

转载 mtk 6572平台led指示灯 调试

led充电指示灯调试相关文件目录custom//kernel/leds/mt65xx/cust_leds.ckernel/drivers/leds/leds_drv.cplatform/mt6572/kernel/drivers/leds/leds.cstatic struct cust_mt65xx_led cust_led_list[MT65XX_LED_T

2017-04-18 19:35:21 2135

转载 android 电池 温度 屏幕亮度设计

import android.app.Activity;import android.content.BroadcastReceiver;import android.content.ContentResolver;import android.content.Context;import android.content.Intent;import android.conten

2017-04-18 19:25:59 226

转载 MTK平台LCD 驱动过程详解

MTK_LCD_Driver代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.cmodule_init(mtkfb_init);模块初始化函数int__init mtkfb_init(void){int r = 0;MSG_FUNC_ENTER();/*

2017-04-11 10:42:27 1976

转载 高通平台修改LK(bootloader)开机logo

a) Read the splash image data from splash .h file.b) Get the splash image data from Splash Partition. for a): 1 首先得拿到图片,格式要求是png, 色深8bit, 且不带alpha(透明色)通道的2 将 png文件转换成raw文件convert Android.p

2017-04-11 09:45:55 1527

转载 kernel power off流程分析

凡是Linux内核上层关机时,底层均会调到kernel_power_off(),电脑可以使用按键ctr+alt+del键进入关机,下面我们看看代码流程: SYSCALL_DEFINE4() -> kernel_power_off()-> pm_power_off_prepare() -> machine_power_off()->    pm_power_off() 在这里我想

2017-04-11 09:43:50 1401

转载 Linux USB驱动工作流程

1. USB主机在Linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通信。Li

2017-04-11 09:42:30 524

转载 android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)

各位网友:最近发现我这篇文章转载的到处都是,有的则以原创存在,转载时请注明出处,还有文中错误的地方请指正!谢谢合作。     下面点lk方法适用于8660,8064。当然qrd则没有那么复杂。一:点亮lcd in kernel其实点亮lcd很简单必须保证以后几个步骤正确:1:确认Lcd信息所在文件被编译进去,并且lcd 和board name里面注册一质,倘若这部正确,那么log里

2017-04-11 09:37:33 978 1

转载 关于Android LCD和键盘背光亮度

应用设计1.1 设置进度条范围背光设置是在:设置->声音和显示->亮度,通过进度条来设置的。 文件:packages/apps/Settings/src/com/Android/settings/BrightnessPreference.Java private static final int MINIMUM_BACKLIGHT = Android.os.Power.BR

2017-04-11 09:33:50 928

空空如也

空空如也

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

TA关注的人

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