关闭

rtmutex 的死锁检测

以为linux里死锁检测就只有rtmutex里用到一点。先个出rtmutex被阻塞的一个场景,这里直接给出简化后的代码: [cpp] view plaincopy int rtmutex_lock(struct rt_mutex *lock)   {       if (rt_mutex_cmpxchg(lock, NULL, current...
阅读(874) 评论(0)

android中wifi原理及流程分析

在网上找的一篇好文章,分析的很详细,自己再加了些东西,图片有点大,不能完全显示,点击图像拖动鼠标直接查看图像。 wifi相关的文件位置: WIFI Settings应用程序位于        packages/apps/Settings/src/com/android/settings/wifi/ JAVA部分:         frameworks/base...
阅读(651) 评论(0)

采用Fuel Gauge可能出现的几种电量现象及解释

首先应该熟悉两个变量,bat_volt_check_point是UI上面显示的值。 gFG_capacity_by_C,库仑计计算的电量值.也等于SOC的值. 公式 DOD1 = DOD0 + (-Car/Qmax). DOD1对应当前的电量值. DOD0对应初始的电量值. Car 为t时间内, 流过Rfg电阻电流的电量. Qmax为电池的容量. 下面几种情况会更新DOD0的值, ...
阅读(2551) 评论(1)

MTK pump express 快速充电原理分析

在讲正文之前,我们先看一个例子。       对于一块电池,我们假设它的容量是6000mAh,并且标称电压是3.7V,换算成Wh(瓦时)为单位的值是22.3Wh(6000mAh*3.7V);普通的充电器输出电压电流是5V2A(10W),理想状态下充满这块电池需要2.23小时(22.3Wh/10W)。现在我们假设充电器调整输出电压电流为10V2A(20W),那么充满同样的一块电池需要1.115...
阅读(6264) 评论(0)

C++中的&引用符号全解

引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多 人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。   引用简介   引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一...
阅读(453) 评论(0)

C++ Vector 使用总结

注意,在使用前要包含vector对应的头文件: #include vector是同一种类型的对 象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包 含其他对象。一个容器中的所有对象都必须是同一种类型的。我们将在第9章更详细地介绍容器。 使用vector之前,必须包含相应的头文件。本书给出...
阅读(522) 评论(0)

c++中vector的用法详解-函数实现

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.      用法:           1.文件包含:                 首先在程序开头处加上#include以包含所需要的类文件vector           还有一定要加上using name...
阅读(822) 评论(0)

使用 ftrace 调试 Linux 内核,第 3 部分

ftrace 提供的工具函数 ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第三部分,通过示例代码介绍如何在代码中使用 ftrace 提供的工具函数,以与 ftrace 交互。通过本文的讲解,读者可以在实际代码中使用...
阅读(531) 评论(0)

使用 ftrace 调试 Linux 内核,第 2 部分

ftrace 使用 ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第二部分,通过示例介绍了如何使用 ftrace 中的跟踪器,并对不同格式的跟踪信息进行了描述,同时还对如何使用 ftrace 调试指定内核模块进行了介...
阅读(731) 评论(0)

使用 ftrace 调试 Linux 内核,第 1 部分-debugfs挂载和调试接口

概述 ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第一部分,介绍了内核相关的编译选项、用户态访问 ftrace 的接口、ftrace 的数据文件,并对 ftrace 提供的跟踪器的用途进行了介绍,以使读者更好的了解和使...
阅读(1126) 评论(0)

ftrace使用

linux中大量使用函数指针钩子,导致阅读代码困难。比如想知道一个函数的调用路径,那么就只能用source insight之类的工具看代码了。有没有办法可以迅速获得调用关系的整体印象?ftrace是内核提供的一种调试工具,可以对内核中发生的事情进行跟踪。比如函数的调用,进程的切换,中断的开关等等。这里利用这个工具来跟踪函数的调用。  # cat /boot/config-2.6.36 | gre...
阅读(1608) 评论(0)

ftrace 简介

ftrace 简介 ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析。 最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程。如今 ftrace 已经成为一个 framework,采用 plugin 的方式支持开发人员添加更多种类的 trace 功能。 Ftrace 由 RedHat 的 Stev...
阅读(572) 评论(0)

深入浅出 - Android系统移植与平台开发(十四) - Sensor HAL框架分析之四

Sensor本地封装类SensorDevice SensorDevice是在本地代码中SensorService对Sensor设备的抽象类型封装,它封装了传感器硬件的硬件操作,该类继承了Singleton类,通过getInstance方法获得单例模式设备操作对象: @frameworks/base/services/sensorservice/SensorDevice.h ...
阅读(479) 评论(0)

深入浅出 - Android系统移植与平台开发(十二) - Sensor HAL框架分析之二

1.1  Sensor应用程序框架 这部分对于上层写应用的朋友来比较熟悉,我们通过一个简单的应用来分析框架层和底层的实现。 通常编写一个传感器的应用程序有以下步骤: l  通过调用 Context.getSystemService(SENSOR_SERVICE)获得传感器服务,实现返回的是封装了SensorService的SensorManager对象 l  调用Senso...
阅读(494) 评论(0)

深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一

1.      Sensor的概念 Sensor即传感器,在当前智能手机上大量存在:G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等,其作为Android系统的一个输入设备,对于重视用户体验的移动设备来说是必不可少的。Sensor虽然是一个输入设备,但是它又不同于触摸屏,键盘,按键等这些常规的输入设备,因为Sensor的数据输入...
阅读(670) 评论(0)

深入浅出 - Android系统移植与平台开发(十三) - Sensor HAL框架分析之三

让我们来看看SensorManager的代码 SensorManager框架层代码 @frameworks/base/core/java/android/hardware/SensorManager.java [java] view plaincopy public SensorManager(Looper mainLooper) {...
阅读(856) 评论(0)

快速删除编译产生的.o文件

find . -name *.o -exec rm -rvf {} \;...
阅读(475) 评论(0)

android timed output vibrator driver

#include #include #include #include #include #include #include "timed_output.h" #include #include #include #include #include #include #include #include #define VIB...
阅读(837) 评论(0)

Linux Likely()/UnLikely() 作用与区别

Likely()/UnLikely() 为 Linux定义的两个宏,...
阅读(764) 评论(0)

Git 的origin和master分析 push/diff/head

1、origin/master : 一个叫 origin 的远程库的 master 分支 2、HEAD指向当前工作的branch,master不一定指向当前工作的branch 3、git  push  origin  本地分支A : 远程分支B ---> push 本地分支A到远程库origin的分支B 首先要明确一点,对git的操作是围绕3个大的步骤来展开的...
阅读(15001) 评论(0)
256条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:750557次
    • 积分:6703
    • 等级:
    • 排名:第3915名
    • 原创:13篇
    • 转载:243篇
    • 译文:0篇
    • 评论:35条
    文章分类
    最新评论