Android驱动
文章平均质量分 81
gnnulzy
这个作者很懒,什么都没留下…
展开
-
Linux驱动基础:MSM平台IOMMU
IOMMU就是所谓的SMMU,它可以将不连续的物理内存组织成一个连续的虚拟内存(这对于很多驱动来说很有意义)。IOMMU把虚拟内存转换成物理内存的逻辑与CPU的MMU一样。通常,Linux很难分配好几MB大小的连续的物理内存(比如5MB或者10MB)。因为内存在使用当中都被会被碎片化,很难找到这么大且连续的物理内存大小。所以以前通常会在linux内核启动之前,把需要用到的几十MB或者上百MB的内...转载 2020-11-09 20:46:52 · 834 阅读 · 0 评论 -
申请中断request_irq()与request_threaded_irq()之间的不同?
在linux里,中断处理分为顶半(top half),底半(bottom half),在顶半里处理优先级比较高的事情,要求占用中断时间尽量的短,在处理完成后,就激活底半,有底半处理其余任务。底半的处理方式主要有soft_irq, tasklet, workqueue三种,他们在使用方式和适用情况上各有不同。soft_irq用在对底半执行时间要求比较紧急或者非常重要的场合,主要为一些subsystem用,一般driver基本上用不上。 tasklet和work queue在普通的driver里用的相对较多,主原创 2020-11-09 20:43:00 · 2523 阅读 · 0 评论 -
如何下载高通android源代码,以sm8250为例
git clone git://codeaurora.org/tools/repo.gitmkdir LA.UM.8.12.r1-11900-sm8250.0cd LA.UM.8.12.r1-11900-sm8250.0/repo/repo init -u git://codeaurora.org/platform/manifest.git -b release -m LA.UM.8.12.r1-11900-sm8250.0.xml --repo-url=git://codeaurora.org/to原创 2020-10-16 16:44:11 · 3657 阅读 · 1 评论 -
让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher
如果你要定制一个Android系统,你想用你自己的Launcher(Home)作主界面来替换Android自己的Home,而且不希望用户安装的Launcher来替换掉你的Launcher. 我们可以通过修改Framework来实现这样的功能。这里以Android2.1的源代码为例来实际说明。1)首先了解一下Android的启动过程。 Android系统的启动先从Zygo转载 2016-03-16 14:56:03 · 941 阅读 · 0 评论 -
Linux内核的动态电压和电流控制接口(regulator&dvfs)
Linux内核的动态电压和电流控制接口 前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的增加会让电量将成线形增长,动态功耗也是电源管理要解决的主要问题,解决动态功耗的方法有几种,如IBM和Montavista合作开发DPM项目(现用在Montavista Mobilinux 5转载 2016-04-29 17:33:19 · 3066 阅读 · 0 评论 -
Exynos4412如何实现DVFS(动态电压频率调整)
动态调压和动态调频~挺有意思的,对于有低功耗要求的手持设备会很有用。 经过测试,在低功耗状态,SCP的可以到18毫安,POP的可以到10毫安,低功耗到运行状态只需要3秒左右。 电源管理芯片是三星专门针对4412研发的S5M8767,S5M8767提供9路BUCK和28路LDO输出,每路电压的大小可以通过软件进行设置。 S5M8767的驱动位于内核的drivers/regulato转载 2016-04-29 17:34:18 · 1689 阅读 · 0 评论 -
DVFS User Guide
What is DVFS?Dynamic Voltage and Frequency scaling is a framework to change the frequency and/or operating voltage of a processor(s) based on system performance requirements at the given point of翻译 2016-04-29 17:35:36 · 625 阅读 · 0 评论 -
uboot流程分析--修改android启动模式按键
原文地址:http://blog.csdn.net/dkleikesa/article/details/9792747本人用的Android平台用的bootloader用的是uboot,貌似大多数手持设备平台都不用这个,因为功能过于强大用不上,反而显得太复杂了。不知道这个平台开发者是怎么想的。既然用了那就来分析一下,顺便修改一下其中的几个小问题,以符合我们的要求。 uboot等同转载 2016-05-04 11:30:26 · 1530 阅读 · 0 评论 -
Android属性之build.prop生成过程分析
http://www.cnblogs.com/myitm/archive/2011/12/01/2271032.html本文简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//s转载 2016-05-04 11:36:33 · 319 阅读 · 0 评论 -
android电池充电以及电量检测驱动分析
前段时间比较烦躁,各种不想学习不想工作,于是休息了几天。这几天又下来任务了--调试充电电路和电池电量检测电路,于是又开始工作,顺便把调试过程记录下来。 平台: cpu 飞思卡尔imx6q 4核 充电芯片 MAX8903 电量检测芯片 MAX11801 Android版本 android4.0转载 2016-05-04 11:49:55 · 3877 阅读 · 1 评论 -
理解devfs,sysfs,udev
linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。 一、devfs devfs是在2.4内核就出现了,它是用来解决linux中设备管理混乱的问题,你查看一下/dev下的设备文件就知道其中有许多是空的(也就是没有对应的硬件的),但是它们却必须存在,所以这给linux设备管理带来了很多麻烦,为了解决这个问题,linux内核开发人员开发了devfs,转载 2016-03-16 10:54:14 · 623 阅读 · 0 评论 -
Android.mk学习笔记
hardware\led\led\Android.mkLOCAL_PATH := $(call my-dir){ 首先需要指定LOCAL_PATH变量,用于查找源文件 上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径}#Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始转载 2016-03-14 16:31:17 · 423 阅读 · 0 评论 -
Linux内存管理之mmap详解
一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.转载 2015-12-18 16:53:20 · 344 阅读 · 0 评论 -
利用AIDL来实现由Binder进行进程间通信(IPC)
学习android有段时间了,觉得还是写写比较好,一可以记录自己学习成长过程,二可以和大家交流,共勉互进。 我只是不想,将这份心动付诸言语。前面还有一句:信任他人,并不意味着软弱。我只是假装对万物一无所知,好借此获得你所有的温柔。谢谢你所做的一切、、、 以上是某个美女的的歌词。利用AIDL来实现由Binder进行进程间通信(IPC转载 2015-11-09 10:09:03 · 340 阅读 · 0 评论 -
在Android 8.0之后版本上添加Hidl Service
本文以LED为例在aosp上添加HIDL,以熟悉整个过程。1. 编写hal文件并编译 在hardware/interfaces/目录下创建led文件夹和基版本1.0,这个版本号分为两部分,major.minor。major版本不变得话,只能添加api,不能修改。创建ILed.hal和types.halhardware/interfaces/led/1.0/ILed.hal...转载 2018-12-17 17:30:35 · 2093 阅读 · 0 评论 -
[笔记分享] [eMMC] 内核eMMC分区及对应名字读取
Chipset: msm8926 OS: Android4.4 Kernel: 3.4.0在N久之前的会议上留下了两个问题: 1. 内核在加载emmc驱动时是如何知道当前有几个分区的? 2. 如何知道/dev/mmcblkXpX对应的是哪个分区呢?读取分区加载sd/emmc驱动的时候,有如下流程: 来看看Check_partition(): 核心的部分是chec...转载 2019-01-09 17:52:46 · 4961 阅读 · 1 评论 -
eMMC之分区管理、总线协议和工作模式
eMMC 分区管理Partitions OvervieweMMC 标准中,将内部的 Flash Memory 划分为 4 类区域,最多可以支持 8 个硬件分区,如下图所示:概述一般情况下,Boot Area Partitions 和 RPMB Partition 的容量大小通常都为 4MB,部分芯片厂家也会提供配置的机会。General Purpose Partitions (GPP) ...转载 2019-01-09 17:39:46 · 580 阅读 · 0 评论 -
Android P 系统开发--添加新设备
Android系统开发--添加新设备了解编译层编译产品编写配置产品的Makefile配置产品的编译文件关系使用编译类型编译类型userdebug 准则利用资源叠加层定制版本设置 ANDROID_VENDOR_KEYS 以通过 USB 进行连接了解编译层编译层次结构包括与设备的物理结构对应的抽象层。下表中介绍了这些层。每个层都与上一层存在一对多的关系。例如,一个架构可以有多个板...翻译 2019-07-02 19:55:53 · 690 阅读 · 0 评论 -
Android p Adding a New Device
Use the information in this page to create the makefiles for your device and product. Please note, unlike the other pages in this section, the contents here are applicable only when creating an entire...翻译 2019-07-02 20:02:13 · 504 阅读 · 0 评论 -
【Android Native Code开发系列】三 Android源码的编译环境配置、下载及编译
只使用源码(如某些类)而不用重新编译的人可以略过此文####################################### 配置Android编译环境(for Ubuntu 10.04 64-bit)#######################################官方参考:http://source.and转载 2016-05-07 20:55:59 · 363 阅读 · 0 评论 -
【Android Native Code开发系列】四 编译自己的Native Code
注意:1。 系列六里也有一些编译相关的技巧2。 编译过程中,如果出现需要类似缺少libxxx.so这样的出错信息,请到源码主目录编译此库: make libxxx####################################### 编译自己的Native Code####转载 2016-05-07 20:57:50 · 505 阅读 · 0 评论 -
android 状态栏(StatusBar)
一、SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk文件 , 命名为 SystemUI.apk, 保存在 System/app 文件夹中。在 SystemUI.apk 中 , 是存在着状态栏的图标 ,XML 和控制文件等 , 这样的分割 , 使我们可以更方便地去转载 2016-06-20 09:34:29 · 643 阅读 · 0 评论 -
第三方apk文件编译到系统文件(system.img)中的方法
1 (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中。 (2) 执行命令make snod , 把添加的spk编到system.img 中 缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。 2 "方法一"的改进。 (1) 新建一个文件夹目录,用来存放apk文件转载 2016-06-20 09:53:00 · 1124 阅读 · 0 评论 -
android4.0.3添加 Ethernet框架支持
一、移植framework部分(+号的行代表增加的内容,-号的行代表删除的内容) 从4.0.3 master分支移植到4.0.3_r11.1.将源路径framework/base/ethernet 复制到目标路径的framework/base/目录下 1.2.修改目标路径的framework/base目录下的Android.mk vpn/java/android转载 2016-06-20 10:53:55 · 334 阅读 · 0 评论 -
linux设备树的解释 - DTC编译器
DT文件结构DT的文件组织结构如图 *.dts作为一块板子总的设备组织结构,它会include其他一些有共同特性的文件来,这些文件就是后缀名为*.dtsi的文件DTC编译dtc编译器能够把 dts 文件生成为dtb文件,也能把dtb文件生成为dts文件语法dtc [-I input-format] [-O output-format] [-o outpu转载 2016-08-22 08:36:31 · 877 阅读 · 0 评论 -
Android 源码编译详解【一】:服务器硬件配置及机型推荐-2016/06
转自http://blog.csdn.net/mlq8087/article/details/51839256 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一切环境都要重新搭建,有幸当此重任,因为自己之前也只是用过,并没有亲手搭建过,所以也是边学边用,现学想卖,尽可能全面细致给小白做个参考,大神转载 2016-09-01 10:16:13 · 2420 阅读 · 0 评论 -
android 休眠唤醒机制分析(一) — wake_lock
Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作。wake_lock一般在关闭lcd、tp但系统仍然需要正常运行的情况下使用,比如听歌、传输很大的文件等。本文主要分析driver层wake_lock的实现。一、wake_lock 定义和接口[cpp] view转载 2016-05-19 15:22:57 · 493 阅读 · 0 评论 -
android 休眠唤醒机制分析(二) — early_suspend
early_suspend是Android休眠流程的第一阶段即浅度休眠,不会受到wake_lock的阻止,一般用于关闭lcd、tp等设备为运行的应用节约电能。Android的PowerManagerService会根据用户的操作情况调整电源状态,如果需要休眠则会调用到HAL层的set_screen_state()接口,在set_screen_state()中会向/sys/power/state节点转载 2016-05-19 15:25:23 · 785 阅读 · 0 评论 -
基于Android的Linux内核的电源管理:Early Suspend
转自http://www.linuxidc.com/Linux/2011-07/39477p3.htm1.用户空间的接口在kernel/power/main.c中,定义了一组sysfs的属性文件,其中一个定义是:power_attr(state);把这个宏展开后: staticstruct kobj_attribute state转载 2016-05-14 17:26:51 · 293 阅读 · 0 评论 -
Android系统一些默认值的设置
项目接近尾声,今天恰好也要初始化一下系统里的默认值,google了一下,有时就得做个拿来主义,没有时才自己做轮子滴嘛,呵呵1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_cu转载 2016-06-20 09:30:32 · 991 阅读 · 0 评论 -
android原生系统裁剪
1,Andriod 4.0.4系统包Andriod 4.1.1系统包说明 ApplicationsProvider.apkApplicationsProvider.apk应用程序存储、 程序管理器(不可删) BackupRestoreConfirmation.apkBackupRestoreConfirmation.apk转载 2016-06-07 14:59:58 · 3090 阅读 · 0 评论 -
【Android Native Code开发系列】 五 运行、调试编译的Native Code项目
####################################### Run,Debug自己编译的Native Code项目######################################## 在模拟器上测试自己的代码1. 先确保自己已经有Android sdk,platform, 以及platform-tools;转载 2016-05-07 20:59:06 · 390 阅读 · 0 评论 -
【Android Native Code开发系列】六 一个Native Service的完整示例
关于Android Native Service的简介及一些例子, 还可以参考longfeey的大作: http://blog.csdn.net/longfeey/article/details/58870261. 准备工作(1)因为要调用Android源代码的framework/base里的一些类,所以要确保有android相关源代码(2)需要交叉编译器, 链接器等工转载 2016-05-07 21:01:14 · 514 阅读 · 0 评论 -
linux spi子系统 驱动分析续
上文从下到上的介绍了spi子系统,现在反过来从上到下的来介绍spi子系统的使用:int spi_register_driver(struct spi_driver *sdrv){ sdrv->driver.bus = &spi_bus_type; if (sdrv->probe) sdrv->driver.probe转载 2016-05-09 13:37:18 · 363 阅读 · 0 评论 -
MIPI DSI协议介绍
原文地址:http://blog.csdn.net/qq160816/article/details/19555957一、MIPIMIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。已经完成和正在计划中的规范如下:转载 2016-05-19 09:02:50 · 1034 阅读 · 0 评论 -
android 休眠唤醒机制分析(三) — suspend
前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 — 深度休眠。在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。转载 2016-05-19 15:49:59 · 1480 阅读 · 0 评论 -
Power Supply驱动框架
Power Supply驱动框架和具体驱动 Power Supply驱动程序用于让用户空间可以读取系统中的供电设备信息。供电设备可以是直流电源(AC)、USB或者电池等。17.5.1 Power Supply驱动框架Power Supply驱动程序与用户空间的接口是sys文件系统,该类型驱动程序的目录为/sys/class/power_supply/,其中的每个子目录表转载 2016-05-20 16:33:40 · 1088 阅读 · 0 评论 -
android电池管理系统
本文转自http://www.2cto.com/kf/201408/326462.html1、概述随着移动智能设备的快速发屏,电池的续航能力在很大情况下诱导了大众消费者的购买选择,android系统对电源管理的合理与否直接影响到电池的续航能力,而电池系统作为其中的一部分,主要用于对电池状态的监控(电池电量、电池状态及电池温度等)。下面将详细分析android的电池系统架构。转载 2016-05-20 16:37:20 · 776 阅读 · 0 评论 -
Android电源管理-休眠简要分析
工作需要,需要对这一块深入学习。故在此做一点分析记录,存疑解惑。一、开篇 1.Linux 描述的电源状态 - On(on) S0 - Working- Standby (standby) S1 - CPU转载 2016-05-21 11:09:24 · 2122 阅读 · 0 评论 -
MIPI video mode 和 command mode 的区别
首先来讲第一个话题LCD RAM由来最近魅族论坛和小米论坛最火的话题之一莫过于LCD RAM,当然小米最近后院起火,导致售后/投诉才是最火的.何为LCD RAM?LCD 是指字面意思是液晶显示屏(Liquid Crystal Display), 而RAM: 随机存取存储器(Random-Access Memory),两者完全是风马牛不相及的东西。下图是一个标准的LCD的爆炸图(转载 2016-05-19 08:49:31 · 1635 阅读 · 0 评论