源文件位置:modem_proc\multimedia\audio\avs\src\sndhwg2.c sndhw_init()函数,2520行左右:pm_set_speaker_gain(PM_SPKR_GAIN_PLUS12DB); 代码中的最大值可以设到PM_SPKR_GAIN_PLUS18DB,高通工程师建议只设置到16,因为实际中只能增益到16个DB…
记录一下高通音频配置文件mixer_paths.xml初始化过程.参考代码基于Android O. hardware/qcom/audio/hal/audio_hw.c struct audio_module HAL_MODULE_INFO_SYM = { .common = { .tag = HARDWARE_MODULE_TAG, .module_api_version = AUDIO_MODULE_API_VERSION_0_1, .hal_api_version = HARDWARE_H…
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流程分析 qcril 流程分析,设置sim卡锁 python scons 语法学习 Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发环境 高通and…
之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了,只是把相关的驱动移植过来就好:另一款是Samsung的一款比较新的3M YUV FF sensor,在最新项目中要使用的,本文以调试该sensor为例,从底层驱动的角度分享一下高通android平台下调试camera的经验,而对于高通平台camera部分的架构以及原理不做过多的介绍. 一.准备工作…
高通在MSM8998上引入了UEFI,用来代替LK(Little Kernel).高通UEFI由XBL和ABL两部分组成.XBL负责芯片驱动及充电等核心应用功能.ABL包括芯片无关的应用如fastboot.XBL核心是none-HLOS boot_image代码的一部分,属于高通私有代码.ABL则在开源Linux Android代码树里.LK的设备驱动都放在了XBL核心,Linux加载启动及fastboot等功能组件则作为独立的UEFI应用存在.有关UEFI.XBL及ABL的详细介绍,请参见高通…
点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹:sys/bus/msm_subsys/devices,里面分别有三个文件夹:subsys0.subsys1.subsys2,这三个都是android系统中运行的子系统.根据高通的解释,subsys0主要是负责adsp(音视频媒体的相关服务)的启动和运行,subsys1主要负责modem(拨打电话和蓝…
本文转载自:http://blog.csdn.net/liwei16611/article/details/53955711 1.Sensor slave配置 结构体msm_camera_sensor_slave_info定义在media/msm_cam_sensor.h中: struct msm_camera_sensor_slave_info {char sensor_name[32];              //sensor名称char eeprom_name[32];        …
一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体.场景或系统提示信息叠加到真实场景中,从而实现对现实的增强. 二.工具: 在这里我们主要是用高通的Vuforia SDK来演示如何在Unity下制作一个简单的AR的demo,Vuforia SDK是一套很完整的可以直接调用的AR API,而假如想深入了解SDK…
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2  开发环境 Android:4.0 Kernel: Linux3.0 Ubuntu:需要 10.04以及之后的版本 Gcc: 4.4.3 toolchain 1.3  硬件平台 Msm8x25,pmic(pm8029) 1.4  操作系统 Android:4.0,  Kernel: 3.0 1.5  开发工具 VIM…
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的. (1) kernel 先来说一下kernel里LCD的移植,之前从来没有接触过LINUX里LCD的驱动,所以刚一开始我竟然连MIPI接口.LCDC接口这些最基本的都不知道,鄙视一…
你给Wi-Fi交过专利费吗?你知道Wi-Fi是谁申请的专利吗? 答:肯定是高通! 错! Wi-Fi技术由澳洲政府的研究机构CSIRO在90年代发明并于1996年在美国成功申请了无线网技术专利.(US Patent Number5,487,069)发明人是悉尼大学工程系毕业生Dr John O'Sullivan领导的一群由悉尼大学工程系毕业生组成的研究小组. IEEE曾请求澳洲政府放弃其Wi-Fi专利,让世界免费使用Wi-Fi技术,但遭到拒绝. 澳洲政府随后在美国通过官司胜诉或庭外和解,收取了世界…
如今人们买手机,都比较关心采用了什么CPU,因为CPU直接决定了这台手机的性能,CPU之于手机就好比人的大脑,它是整台手机的控制中枢系统,也是逻辑部分的控制中心.又相当于车的发动机,发动机越强劲,车子就跑得越快,同理CPU性能越强,手机运行起来也会越流畅,大型游戏高清视频都不在话下. 这里说的CPU并不局限于狭义的CPU,可以理解为一颗集成度很高的SoC. 一颗CPU的诞生需要很多厂商一起合作,需要的技术含量非常高,没有一定的技术沉淀是没法完成一个CPU的设计制作量产,市面上主流的几家CPU厂商…
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍参见链接文章. Android GDI之SurfaceFlinger SurfaceFinger按英文翻译过来就是Surface投递者.SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构.SufaceFlinger主要功能是: )将Layers(Surfaces)内容的刷新到屏幕上…
ASoC被分为Machine.Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器):单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结合在一起才能完成整个设备的音频处理工作. ASoC的一切都从Machine驱动开始,包括声卡的注册,绑定Platform和C…
ASOC的出现是为了让codec独立于CPU,减少和CPU之间的耦合,这样同一个codec驱动就无需修改就可以匹配任何一款平台. 在Machine中已经知道,snd_soc_dai_link结构就指明了该Machine所使用的Platform和Codec.在Codec这边通过codec_dai和Platform侧的cpu_dai相互通信,既然相互通信,就需要遵守一定的规则,其中codec_dai和cpu_dai统一抽象为struct snd_soc_dai结构,而将dai的相关操作使用snd_s…
点击打开链接 daily buildhttp://android-ci-platform.cnbj.sonyericsson.net/job/daily_build_jb-mr2-yukon/DL-CNBJ-TianChi-SWCM: tianchi gina jb 的 CM 一. msm8226-tianchi_dsds.dtsi; msm-pm8226.dtsi 二.. Audio Jack   NC 和 NO的选择改成了dts里面设置   @kernel/arch/arm/boot/dts…
点击打开链接 1. repo init -u git://review.sonyericsson.net/platform/manifest -b volatile-jb-mr1-yangtze 2. https://wiki.sonyericsson.net/androiki/CN3-II/Bringup_Trail_FC34  如何编译3. https://wiki.sonyericsson.net/androiki/PLD_CM/Yangtze  如何编译和flash4. https://…
此次移植打算分成两个模块来说,bootloader部分和kernel部分.在实际的移植调试过程中也是这么分成了两个部分分别调试. 高通平台中的bootloader叫做LK(Little Kernel,对于LCM来说LK部分相当重要,它不仅要负责开机部分的LCD显示任务,还要负责传参给kernel的LCM驱动,指导kernel选择合适的LCM参数. 1.LK中LCM启动流程 注:read_panel_id()和read_panel_id_ddr3()为私有添加,非高通库上代码. 在这个流程图中,需…
高通msm是Mobile Station Modem 的缩写,即移动基带工作站,是指带有基带芯片的移动处理器,实际就是基带内置的手机处理器(soc)系列. qsd是qualcomm snapdragon的缩写,只给了高通的第一批次scorpion架构处理器,只有qsd8250,qsd8650,qsd8250a,qsd850a使用,后来不再使用,也就是目前snapdragon--骁龙的称呼的来历,属于名誉性定名,用来纪念高通的第一批次的arm v7处理器. apq是ap only,即applica…
处理器信息 8994包含如下子系统: 子系统 处理器 含义 APSS 4*Cortex-A53 应用子系统 APSS 4*Cortex-A57 应用子系统 LPASS QDSP6 v5.5A(Hexagon) 低功耗音频子系统 RPM Cortex-M3 资源功耗管理子系统 Modem QDSP6 v5(Hexagon) 调制解调(基带)处理子系统 从上表中可以看出,8994包含应用处理子系统.资源功耗管理子系统.调制子系统.低功耗音频子系统.其中应用处理子系统由4个A53和4个A57组成, 资…
从trust zone之我见知道,支持trustzone的芯片会跑在两个世界. 普通世界.安全世界,对应高通这边是HLOS,QSEE. 如下图: 如下是HLOS与QSEE的软件架构图 HLOS这两分为kernel层,user层.user层的通过qseecom提供的API起动trustzone那边的app. qseecom driver 除了提供API,还调用scm函数做世界切换. scm driver 那边接到qseecom的调用后,会把HLOS相关数据(包括指令参数)放入指它buffer,然后…
一. MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974.MSM8916.MSM8994等,会有微小区别. 从上图,可以看出高通8K平台的boot过程非常不一般啊.相比MTK平台,或者高通7K平台,复杂了非常多. 下图是高通文档对启动流程的说明, 已经很清楚了,我这边就直接贴出来啦. 图2: 系统上电后从RPM PBL启动到 APPS PBL 然后SBL1 ,再启动APPSBL 等等,整个过程看似非常复杂,但其实很多代…
一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参数 @msm-pm8226.dtsi中     pm8226_bms: qcom,bms{        qcom,low-soc-calculate-soc-threshold = <15>; //认为是低电压的soc(15%)        qcom,low-soc-calculate-soc…
目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 Kernel display接口 典型应用flow分析 介绍 Surface manager(surface flinger)简介 架构分析 流程分析 根据前面的介绍,surfaceflinger作为一个server process,上层的应用程序(作为client)通过Binder方式与其进行通信.…
lk SPI驱动 1. 初始化时钟 在lk中,我们是从kmain开始执行下来的,而执行顺序则是先初始化时钟,也就是在platform_early_init函数中开始执行的: 在这里我们需要修改这个函数中的platform_clock_init();,我们来这里看这个函数,平台为msm8909: void platform_clock_init(void) { clk_init(msm_clocks_msm8909, ARRAY_SIZE(msm_clocks_msm8909)); } msm_c…
MSM8K Boot Flow  转自:http://www.cnblogs.com/liang123/p/6325257.html            http://blog.csdn.net/Fybon/article/details/37565227            http://blog.csdn.net/loongembedded/article/details/52356051 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974.…
转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-1414261.html http://www.xuebuyuan.com/2209890.html 对于嵌入式工程师了解芯片启动过程是十分有必要的,在分析.调试各种问题的时候都有可能涉及到这方面的知识.同时这部分知识也是比较复杂的,因为其中涉及到芯片内部架构,启动各个阶段软件代码执行顺序,启动模式等等.下面…
CSR plc(LSE:CSR),原名剑桥硅晶无线电或英商剑桥无线电(英语:Cambridge Silicon Radio),是一间创立于 1998年的跨国无厂半导体公司,总部位于英国剑桥.早期技术主要在音频领域,2004年在伦敦证券交易所上市.主要产品为无线电.蓝牙芯片.音 讯处理与定位芯片.在2011年,它的收益名列世界第13大无厂半导体公司.2015年被高通公司收购. 发展历程: 2007年1月收购Nordnav Technologies和Cambridge Positioning Sys…
app注册传感器监听 Android Sensor Framework 的整体架构如下图所示: 前几篇sensor相关的文章介绍了sensor的hal的知识,以press_sensor实时显示气压坐标来分析,app层数据获取的过程,其实实现数据监控非常简单,主要分为下面三个步骤: 获取Sensor服务:getSystemService: 获取具体Sensor对象:getDefaultSensor: 注册数据监听器:registerListener: SensorService启动 开机后,sys…
lk部分:(实现LCD兼容) 1. 函数定位 aboot_init()来到target_display_init(): 这就是高通原生lk LCD 兼容的关键所在.至于你需要兼容多少LCD 就在while()设置了,具体代码就不跟下去了. 然后根据target中的不同文件来判断是否进入哪一个函数来处理: target_display_init() 函数里有很重要函数就是gcdb_display_init(); 如果平台支持屏幕最大个数自动检测,msm8953支持兼容两个屏.(GCDB:Globa…