- 博客(85)
- 收藏
- 关注
转载 wake_up_interruptible 函数
功能:唤醒注册到等待队列上的进程原型: #include void wake_up_interruptible (wait_queue_head_t *q);说明: 唤醒 q 指定的注册在等待队列上的进程。该函数不能直接的立即唤醒进程,而是由调度程序转换上下文,调整为可运行状态。变量:q : 等待队列变量指针。
2017-06-24 12:13:02
1847
转载 Android系统的开机画面显示过程分析
Android bootloader启动到kernel 分析: Android Kernel - Boot Loader http://blog.youkuaiyun.com/luoshengyang/article/details/7691321 好几个月都没有更新过博客了,从今天开始,老罗将尝试对android系统的UI实现作一个系统的分析,也算是落实之前所作出的
2017-06-24 12:06:37
697
转载 Android 电源管理 -- wakelock机制
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种: 第一种是永久的锁住,这样的锁除非显
2017-05-26 08:58:58
467
转载 RT throttling分析
Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的。当没有更高优先级的实时进程抢占,而此进程又由于bug等原因长时间运行,不调度其它进程,系统就会出现无响应。这里要分析的RT throttling就是针对此种情况的,它通过限制每个单位时间内分配给实时进程的CPU运行时间,来防止上述情况的出现。标准的设置是1s的时间内,实时进程的运行时间是950ms,其余
2017-05-23 14:40:35
2805
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
3035
转载 如何设置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
674
转载 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
224
转载 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
1446
转载 git使用小技巧
与其他技术相比,Git应该拯救了更多开发人员的饭碗。只要你经常使用Git保存自己的工作,你就一直有机会可以将代码退回到之前的状态,因此就可以挽回那些你深夜里迷迷糊糊犯下的错误。尽管这么说,Git的命令行界面可是出了名的难掌握。接下来,就给大家介绍7个小技巧,最大限度发挥Git的作用。通常,大部分时间我们都只会用到add、commit、branch和push/pull这些命令。大部分人熟悉这
2017-05-03 18:01:02
200
转载 高通平台 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
7361
转载 android gralloc流程分析for msm8960
原文转载自http://blog.youkuaiyun.com/g_salamander/article/details/8424334增加了Gralloc模块的平台背景和功能概述部分。对原文针对msm8960 Android display做了修正。增加了Surfaceflinger初始化FrameBufferNativeWindow的代码部分。平台中内存有ashmen、PMEM等多种内
2017-05-03 17:43:25
911
转载 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
759
转载 所谓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
547
转载 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
545
转载 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
648
转载 Android图形合成和显示系统---基于高通MSM8k MDP4平台
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台。做为Android Display专题。SurfaceFlinger的详细介绍参见链接文章。Android GDI之SurfaceFlingerSurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是
2017-05-03 17:05:39
4914
转载 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
714
1
转载 linux进程调度、进程切换原理详解
版权声明:转载时请以超链接形式标明文章原始出处http://wanderer-zjhit.blogbus.com/logs/156738683.html和作者信息及本声明思考: 在cfs就绪队列中,进程是否切换不是按照时间片到期考虑,而是给根据当前就绪进程数给出一个延迟周期,然后根据当前进程的权重,从而确定当前进程是否已经执行过长时间。 抢占问题:调用try
2017-05-03 17:01:09
877
转载 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
435
转载 Linux中的工作队列
出处:http://www.cnblogs.com/wwang工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。工作队列是2.6内核开始引入的机制,在2.6.20之后,工作队列的数据结构发生了一些变化,因此本文分成
2017-05-03 15:49:25
206
原创 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
1254
原创 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
1939
原创 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
496
转载 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
1120
转载 Android Power Management 实现
总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo) 接下来我们从Java应用层面,Android framework层面, Linux内核层面分别进行详细的讨论: 应用层的使用: Android提供了现成android.os.
2017-05-02 14:41:40
434
转载 ndroid OS MTK6573 SD卡驱动浅析
首次出关于MTK方面的驱动文章,网上也很少有这方面的文章,所以我立志要写几篇这样的文章来引导刚出道的朋友们,咱们一起努力!大家都说MTK简单,但我个人做过高通平台一年时间,然后转而做MTK平台,感觉还是能学到东西的,代码并不比所谓的高通简单,只是它做的好,封装的好,所以做这块驱动可能开发者做的事情没高通多,所以大家觉得容易,学不到东西。但只要自己对技术执着,深入到架构的实现,还是能学到很多的。
2017-05-02 11:42:18
346
转载 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
649
转载 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
616
转载 android 休眠唤醒机制分析(三) — suspend
前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 — 深度休眠。在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。
2017-04-20 11:21:12
7824
转载 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
1288
转载 getevent/sendevent 使用说明
这两天准备写一下input子系统的分析,过程中发现了两个好工具,呵呵,就是本文介绍的主角:getevent用于获取当前系统input设备的一些参数和实时事件的数据;sendevent用于发送input事件,这样在调试的时候遇到有的样机按键坏了或者触摸屏坏了就方便了,工具的源码位于Android SDK的system/core/toolbox下面。一、getevent首先看一下命令的用法
2017-04-20 10:46:30
467
转载 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
1643
转载 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
2188
转载 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
236
转载 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
2046
转载 高通平台修改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
1576
转载 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
1514
转载 Linux USB驱动工作流程
1. USB主机在Linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通信。Li
2017-04-11 09:42:30
542
转载 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
1008
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
946
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人