- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 增大CMA内存大小
项目中需要通过驱动与fpga通讯,获取fpga往内存里写的数据。因为数据量比较大,需要驱动分配600多M的内存给fpga来写数据,且因为是与fpga通讯,需要连续的内存,还得是uncached的,因此打算采用dma接口来分配如此大的内存。然而,在分配的过程中遇到了一些问题,下面对这次的调试进行总结。本文提供了两种方式来解决期望DMA区域特别大的情况(几百M的情况),通过这次的bug调试,更加深入的理解了linux内存管理相关知识。突然想感叹下,好久没碰内核了,看来以后有时间就的补补!!!
2024-07-04 11:01:59
647
原创 Android Bluetooth 总结
一、Android Bluetooth现状(1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。(2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了Handset/Handfree和A2DP/AVRCP等Profile。(一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在现在的Android2.2版中
2014-03-15 11:56:54
302
原创 提升WIFI提速十大技巧
手机wifi速度慢真是很让人苦恼,有什么有效的wifi提速方法吗?当然有啦,今天笔者就为大家带来了提升wifi速度的十大方法,能激活wifi表现,提升无线网络哦。 每当我们谈到要提高Wi-Fi的无线速度时,一般都会结合无线的传输距离和传输速度两方面来考虑,为什么呢?因为假设在无线路由器的旁边,获得了很快的无线速度,可一旦走远一些就没有信号的话,那么前面所说的无线速度就变得毫无意义了,这时我们
2014-03-12 17:20:55
448
原创 根据linux Oops定位 kernel 错误代码行
经常会遇到kernel dump问题,经常会由于kernel无法处理NULL指针,导致Oops出现,Oops内容如下:[ 1023.510000] Unable to handle kernel NULL pointer dereference at virtual address 00000000[ 1023.520000] pgd = c0004000[ 1023.520000]
2014-02-13 13:56:45
2442
原创 Trace32 Simulator for ARM (Qualcomm dump analysis)
Trace32 ICD ARM USB能实时Debug程序在手机中的运行情况,需要连接Trace32硬件才可以工作。但是,对于概率性的实际问题,借助Trace32 ICD ARM USB找到问题原因比较困难,因为不能确定手机什么时候Crash。使用Trace32的WIN32版本,把手机Crash时的寄存器信息dump出来,就能在WIN32下定位到死在程序代码的那一行,非常类似于EMP平台的
2014-02-13 13:14:33
396
原创 伙伴系统分析
chipset: MSM8X25QCodebase: Android4.1Kernel: 3.4.0 基本概念: 关于伙伴系统算法的原理还是比较好理解的,这里不作复数。直接看下关键数据结构。[html] view plaincopystruct zone { ~~snip
2014-02-13 12:38:37
273
原创 Qualcomm平台 屏幕旋转180° 调试过程
环境:OS: Android4.1Chipset:MSM8X25Qmdp:3.03背景:屏幕反着打,需要显示旋转180°。旋转方案:1. 通过lcd driver ic直接让屏幕旋转。2. 通过mdp旋转。3. Framework旋转。 调试过程:方案1:由于玻璃是单扫描
2014-02-13 12:34:54
469
原创 Use QPST dump memory, 然后再使用trace32 跟踪
Trace32 Simulator for ARMTrace32 ICD ARM USB能实时Debug程序在手机中的运行情况,需要连接Trace32硬件才可以工作。当机器crash死机后使用Trace32的WIN32版本,把手机Crash时的寄存器信息dump出来,就能在WIN32下定位到死在程序代码的那一行.Qualcomm QPST获取dump 手机死机时,按"#"
2013-12-13 10:09:06
534
转载 尚学堂-java学习笔记
//这是我刚接触java时做的笔记, 后面也没去整理, 可能其中有些理解有误, 仅供参考!!!1、java中一个英文字母或一个中文汉字都是2个字节来存储.如:(char是16bit)2、"+"中的任何一端为字符串类型时,另一端会自动转换成字符串类型,如: 22+"22",结果为2222 而与字符型数据相加时,字符型数据转换成整形数据,如:6+7+'A',结果位 78
2013-06-24 11:09:19
491
尚学堂-java学习笔记
//这是我刚接触java时做的笔记, 后面也没去整理, 可能其中有些理解有误, 仅供参考!!!1、java中一个英文字母或一个中文汉字都是2个字节来存储.如:(char是16bit)2、"+"中的任何一端为字符串类型时,另一端会自动转换成字符串类型,如: 22+"22",结果为2222 而与字符型数据相加时,字符型数据转换成整形数据,如:6+7+'A',结果位 78
2013-06-24 11:00:40
301
原创 高通增大分区以及烧录失败解决
一.EMMC分区 1.修改modem惻 msm7627ym/core/storage/tools/jsdcc/partition_load/partition.xml里面的system或userdata空间大小. 2.然后编译modem侧代码,将生成的在msm7627ym/core/storage/tools/jsdcc/partition_load/目录下的文件raw
2013-03-29 15:56:37
338
原创 关于audio的总结
做过高通平台的msm7X27,msm7x27a,qrd8x25的audio驱动工作,关于android的audio流程网上可以查到很多内容,就总结下调试audio遇到的问题吧这是整个audio tx,rx的流程。包括voice的,很清晰一。关于耳机检测及耳机按键检测的问题耳机插拔检测是靠一个GPIO管脚检测,有上拉电阻到vbat,没有插耳机为高电平,插入之后变低电平,报中断对应
2013-02-28 17:34:31
880
原创 audio驱动调试
平台: QSC60X0参考文档: 80-V9137-1, 80-VH828-1, CL93-V6321-1, 80-VA552-11参考代码: msmaud.h, sndcal.c , voccal.c工具: FIR/IIR滤波器调节工具---QFILT 本文主要是针对QSC60X0的音频调试,但是高通音频部分的原理都是大同小异的,所以对于其他平台也有借鉴作用
2013-02-28 17:22:47
618
原创 高通平台android开发总结
1、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台 7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发环境高通an
2013-02-02 11:38:48
693
原创 nand flash坏块管理OOB,BBT,ECC
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB
2013-01-31 16:41:33
346
原创 NAND Flash
NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个附加的脚用作: 控制硬件写保护(WP#)、监视芯片状态(R/B#),和发起
2013-01-31 16:09:39
718
原创 Android Recovery Mode(recover模式详解)
Recovery简介Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_
2012-12-04 15:21:12
523
原创 build.prop 的生成
/system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件。这个文件是如何生成的呢?build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件build/core/Makefile中使用build/tools/buildinfo.sh 脚本生成build.prop文件,
2012-10-15 12:45:47
326
原创 android里面的进程回收机制
Android中的进程是托管的,当系统进程空间紧张的时候,会依照优先级自动进行进程的回收.由此带来三个问题:l 回收规则: 什么时候回收与回收哪一个l 避免误杀: 如何阻止被回收l 数据恢复与保存: 被回收了怎么办 Android将进程分为6个等级,它们按优先级顺序由高到低依次是:1.前台进程( FOREGROUND_APP)2.可视进程(VISIBLE_
2012-10-15 11:59:44
377
原创 Qualcomm平台android开发总结
1、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台 7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发环境高通an
2012-05-04 15:28:06
2597
转载 Android 中的WiFi学习笔记——经典
Android的WiFi我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程。wpa_supplicant在external/wpa_supplicant里实现wpa_supplicant适配层是通用的wpa_supplicant的封装,在Android中作为WIFI部分的硬件抽象层来使用。wpa_supplicant适配层主要用于封装
2012-03-05 15:12:37
570
原创 Android下的Wifi (上层流程)
1. WIFI JAVA layer:1.1. 当android系统启动WIFI 模块时, 它将调用 Wifiserver 类的setWifiEnabledBlocking函数。1.2. 在该函数中,如果是使能WIFI, 它将做四件事: a. load wifi driver. b. 启动wpa_supplicant. c. 启动 event loop.
2012-03-05 15:02:45
524
转载 高通MSM8255 GPS 调试分析
1.硬件抽象层:高通MSM的硬件层代码在:hardware/qcom/gps/loc_api下,高通的GPS集成在baseband侧,与Modem部分一样,同样是基于share Memory上高通自有的RPC协议实现。所以高通的硬件层分为两部分,一部分实现的是:硬件抽象层的接口实现,另一部分实现的是基于RPC协议封装的具体控制和数据操作,该部分主要是利用高通的RPC代码生成器生成。两个部分
2012-03-05 14:49:54
820
原创 BCM4330 WIFI 调试记录
Part 1 问:打开wifi,连接wifi热点,提示连接成功,但headbar上不显示wifi图标,back退出wifi设置,再进入,提示wifi已断开。答:首先现象复现,当现象复现时进入adb shell,然后输入ifconfig 查看是否有wlan0 端口,然后在adb shell 中ping 192.168.1.101(嵌入式设备的IP),如果能Ping通则说明底层wifi设备与A
2012-03-05 14:45:42
870
原创 Android BCM4330 蓝牙BT驱动调试记录
网上关于BT的驱动很少,所以我在开发过程中把其中的步骤记录下来。供大家相互学习讨论。一、关于BT driver的移植:1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_BLUETOOTH := true2.实现BT电源管理rfkill驱动。Kernel/dr
2012-03-05 14:43:49
885
1
原创 BCM4330 Android OS Wireless Develop
做WIFI&BT已经有2个月了,心里至少对这块的移有了一定的了解。趁着深夜,也试着整理一下。首先交代开发环境——硬件平台:高通MSM8225,OS:Android2.3.5,无线模块:brodcom BCM4330。一、WIFI: 首先保证上好电:在platform/kernel/arch/arm/mach-msm/board-msm7x30.c中实现GPIO管脚的配置,也要
2012-03-05 14:41:35
964
原创 Android Wifi的工作流程
Wifi 网卡状态1. WIFI_STATE_DISABLED: WIFI网卡不可用2. WIFI_STATE_DISABLING: WIFI正在关闭3. WIFI_STATE_ENABLED:WIFI网卡可用4. WIFI_STATE_ENABLING:WIFI网卡正在打开5. WIFI_STATE_UNKNOWN:未知网卡状态 WIFI
2012-03-05 14:36:19
1132
原创 android sensors整个流程
本文以G-sensor为列,其它compass,light sensor以此类似。 1.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips
2011-09-01 10:43:13
767
原创 trace32调试android kernel (AP)
之前我讲了怎么用eclipse调试android的framework代码以及用gdb server调试native代码,但是由于gdb无法调试多线程代码,所以用起来还是很不方便。今天我来讲讲怎么用trace32调试kernel. 首先讲讲硬件连接,必须保证你的trace
2011-08-20 09:57:15
1019
原创 Linux下Android ADB驱动安装详解
Linux下Android ADB驱动安装详解概述最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家。Linux下使
2011-07-25 11:29:37
286
原创 initramfs 深入理解, 以及initramfs与initrd的区别
initramfs概述initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &
2011-07-21 19:48:05
875
原创 android kernel 启动以后怎么挂载文件系统, init.rc怎么启动服务开启脚本
方法一: 将他们制作成文件系然后统烧写到板子的存储分区上, 最后将该分区上的文件系统挂载到指定目录即可 请查看init.rc 就知道了 on emmc mkdir /system mkdir /data
2011-07-21 19:03:47
3823
原创 新机器如何安装配置Android工作环境
Linux下的Android环境:The Android build is routinely tested on recent versions of Ubuntu (6.06 and later), but reports of successes or failures o
2011-07-21 17:59:55
549
原创 编译只带initramfs的linux kernel, kernel source version 2.6.18
1. 配置kernel 选项#make menuconifg Device Drivers ---> Block devices ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support Ge
2011-07-21 17:52:25
327
原创 linux 基础知识总结
===================================================linux ,Android基础知识总结1. Android编译系统分析2. 文件系统分析3. 制作交叉工具链4. 软件编译常识5. 设置模块流程分析6. linux系统启动流程
2011-07-21 16:25:42
577
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人