自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhuyong006的博客

移动开发

  • 博客(275)
  • 资源 (10)
  • 收藏
  • 关注

原创 Qemu 启动无法交互的处理方法

【代码】Qemu 启动无法交互的处理方法。

2023-10-01 21:09:16 381

转载 利用Qemu调试Linux内核

调试模块需要在 GDB 中使用 add-symbol-file 命令加载符号表信息,add-symbol-file 需要指定模块的 section 信息,以下两种方式都可以获取 section 信息。需要注意的是每次重新加载 ko,section 地址是会变,要 add-symbol-file 重新加载符号表。我是在 VM 中编译之后直接安装的,也可以在 Host 编译把 vmlinux 拷贝至 VM 中安装。获取到.text 地址之后在 gdb 中加载 ko 模块的符号表,然后就可以调试 ko 模块了。

2023-07-23 19:44:31 525

转载 共享库的加载时重定位技术

本文的目的是解释现代操作系统如何通过加载时重定位来使用共享库。它主要关注运行在32位x86上的Linux操作系统,但一般性原则也适用于其他操作系统和cpu。注意,共享库有许多名称——共享库、共享对象、动态共享对象(DSOs)、动态链接库(dll——如果您来自Windows背景的话)。为了保持一致性,我将在本文中尽量使用“共享库”这个名称。

2023-07-23 17:22:26 213

原创 ARM64学习笔记---建立异常向量表(二)

这里.string “t” 只会占用2个字节,因此紧随其后的 “trigger_alignment” 会触发指令不对齐异常。

2023-07-09 22:42:09 335

转载 宋宝华: 一图理解终端、会话、 进程组、进程关系

药不能停,直接进入正题,本文3分钟读完。文中涉及到的缩写如下:PID: 进程(process) IDPPID:父进程(parent process) IDPGID:进程组(process group) IDSID:会话(session )ID文中a.out对应的代码如下:main(){ fork(); while(1);}实验方法:开一个terminal,...

2020-01-12 17:26:50 633

转载 宋宝华: 用off-cpu火焰图进行Linux性能分析

在《宋宝华:火焰图:全局视野的Linux性能剖析》一文中,我们主要看了on-cpu火焰图,理解了系统的CPU的走向的分析。但是,很多时候,单纯地看on-cpu的情况(什么代码在耗费CPU),并不能解决性能问题,因为有时候性能差的原因瓶颈不一定在CPU上面,而是在off-cpu的时间,比如:进程进入系统调用执行io动作,io动作的延迟进程等待mutex锁的时间内存被交换,swap的时间内存不够的时候...

2020-01-01 20:06:45 1686

转载 在Linux上运行procmem和procrank

Android系统中提供了两个命令行工具procrank、procmem用于查看系统中的内存使用情况。procrank可以查看系统中所有进程的整体内存占用情况,并按照规则排序。而procmem可以针对某个特定的进程分析其堆、栈、共享库等内存占用情况。这两个工具对于我们分析内存相关问题非常有效。由于Android系统使用的是Linux内核,理论上这样的工具可以在Linux上运行。编译参考Andr...

2020-01-01 19:39:45 673

转载 频繁分配释放内存导致的性能问题的分析

频繁分配释放内存导致的性能问题的分析现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为:进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约702 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt...

2020-01-01 19:14:52 1132

转载 Linux 火焰图(on-cpu , off-cpu , memory)

在前一篇文章,我们简单提到了 perf,实际 perf 能做的事情远远不止这么少,这里就要好好介绍一下,我们在 TiKV 性能调优上面用的最多的工具 - 火焰图。火焰图,也就是 FlameGraph,是超级大牛 Brendan Gregg 捣鼓出来的东西,主要就是将 profile 工具生成的数据进行可视化处理,方便开发人员查看。我第一次知道火焰图,应该是来自 OpenResty 的章亦春介绍,...

2020-01-01 19:07:30 6759

转载 Simpleperf介绍

什么是simpleperfSimpleperf是Android平台的一个本地层性能分析工具。它的命令行界面支持与linux-tools perf大致相同的选项,但是它还支持许多Android特有的改进。Simpleperf是Android开源项目(AOSP)的一部分。其源代码 位于。其最新的文档 位于。Bugs 和 功能需求可以提交到 githb上。Simpleperf是如何工作的现代的C...

2019-11-17 20:09:12 6645

转载 Camera ISP流程概述

可以参考网上的PPT(个人觉得比较好)https://wenku.baidu.com/view/a1b9c7e6f705cc1755270984.html一、概述 ISP(Image Signal Processor), 即图像信号处理, 主要作用是对前端图像传感器输出的信号做后期处理, 依赖于 ISP 才能在不同的光学条件下都能较好的还原现场细节。Cmos YUV sensor 的 IS...

2019-10-27 15:36:48 5854

原创 Camera persist使用手册之log使用技巧

查看当前使能了哪些级别的log,可以使用参考命令:adb shell getprop | grep "camera"下面是开启各个模块log级别的简单描述。1. persist.camera.global.debug数值:0-5功能:设置不同的数值,将打印对应级别的log。该属性是总的log级别开关。注意:若子模块的log级别小于该属性设置值,则以该属性为准;若子模块的log级别大于该...

2019-10-27 15:23:43 3173

原创 Camera 初始化(Preview) 三(预览Buffer的流程)

API1+HAL3frameworks\av\services\camera\libcameraservice\api1\Camera2Client.cppstatus_t Camera2Client::setPreviewWindowL(const sp<IBinder>& binder, const sp<Surface>& wi...

2019-10-23 17:13:02 2997

原创 Camera 初始化(Preview) 二(HAL3的流程)

1. 先看下HAL3的预览状态机流程默认状态 MM_CHANNEL_STATE_NOTUSED MM_STREAM_STATE_NOTUSEDadd_channel MM_CHANNEL_STATE_STOPPED MM_STREAM_STATE_INITED ...

2019-10-18 15:32:47 2276

原创 Camera 初始化(Preview) 一(Framework->HAL3)

以下代码流程是API1+HAL3frameworks\av\services\camera\libcameraservice\api1\Camera2Client.cppstartPreview->startPreviewLstatus_t Camera2Client::startPreviewL(Parameters &params, bool restart) {{...

2019-10-15 17:10:17 1087

转载 Android Camera2+HAL3架构

整体架构概述Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程。进程之间的通信都是通过binder实现,其中app和camera server通信使用aidl,camera server和hal通信使用hidl。Android Camera2整体架构如下图:大致分为这几个部分:Application framework这一层是用...

2019-10-15 14:51:36 1502

原创 Camera 初始化(Open)二(HAL3中Open过程)

承接上文Camera在connect后会调度到Camera3Device->initialize函数 ,如下:initialize: status_t res = manager->openSession(mId.string(), this, /*out*/ &session); mInterface = new HalInterface(se...

2019-10-12 16:36:05 1606

转载 Camera 初始化(Open)一(FrameWork -> Hal)

随着Android系统的不断升级,Camera子系统框架也在不断进化由最初的API1和HAL1到现在的API2和HAL3,由最初简单的拍照,录制到现在的连拍,AI人像;可以说是架构上变动最大最频繁的子系统。很多设备仍然依赖相机 HAL1,因此 Android 7.0 继续支持该模块。此外,Android 相机服务还支持同时实现两种 HAL(1 和 3),如果您希望通过相机 HAL1 支持性能...

2019-10-12 13:56:57 1650

原创 Android P版本怎么简单的验证HIDL的Demo例程

1. 首先编写接口文件IJon.hal# mkdir -p hardware/interfaces/jon/1.0package [email protected];interface IJon{ helloworld(string name) generates (string result);};2. 确保你的工程已经完整编译过,且hidl-gen已经生成并可以...

2019-10-11 18:13:21 950

转载 Android 9.0 HIDL接口添加

文章目录一、 接口描述文件创建1.1 创建HIDL目录1.2 创建接口描述文件sample.hal,1.3 生成HAL 相关文件二 、更新Makefile三 、 service.cpp相关3.1 service.cpp创建3.2 Android.bp四 、client库代码修改4.1 Sample.cpp代码修改4.2 Sample.h五 、测试代码六 、运行测试用例的问题解决6.1 andro...

2019-10-11 14:57:24 4049 2

转载 在Android 8.0之后版本上添加Hidl Service

目录1. 编写hal文件并编译2. 实现Hidl Interface3. 编写hdil service4. 配置manifest.xml 5. hidl client端调用 5.1 实现java调用hidl service的例子5.2 实现C++ 调用hidl service的例子6. github地址本文以LED为例在aosp上添加HIDL,以熟悉整个过程。1. 编写hal...

2019-10-10 18:57:31 489

android camera API1调用camera HAL3流程学习总结

从AndroidP 开始,高通camera系统全面使用HAL3,之前的HAL1已经被移除,对应HAL3主流的相机开发接口是camera API2 ,但是依然存在大量的使用Camera API 1开发的相机应用,为此Android专门设计了一套兼容API1调用HAL3的中间转换接口,本门主要从几个方面简要介绍下这部分相关的知识。**opencamerastartpreviewtakepict...

2019-10-10 13:47:07 2598

转载 Systrace分析app启动分析

Android Version: 6.0及以上Platform: 通用1. 介绍此篇文章将介绍如何通过systrace来分析在launch界面click一个app的icon后app的启动时间,包括了animation off和animation on的情况,以google music应用为例。2. 寻找InputReader–>AppLaunch_dispatchPtr:Down根...

2019-10-08 15:42:43 808

原创 一个apk调用另一个apk的某个activity

功能:Caller.apk调用Callee.apk中的CalleeMainActivity和CalleeLowerActivity。定义:Caller.apk:去调用的apk, 包名为com.callerCallee.apk:被调用的apk, 包名为com.calleeCalleeMainActivity:manifest.xml中的intent-filter字段带有的activityC...

2019-09-20 18:06:32 825

转载 Android性能专项测试之Systrace工具

Systrace Walkthrough Systrace Analyzing UI Performance with Systrace Speed up your appSystrace能做什么?计算容器的性能发现性能的瓶颈Systrace的使用准备4.1以上rootAndroid SDK Tools 20python环境Systrace启动你...

2019-09-18 16:21:00 237

转载 Linux内核slab内存的越界检查——SLUB_DEBUG

1. 前言在工作中,经常会遇到由于越界导致的各种奇怪的问题。为什么越界访问导致的问题很奇怪呢?在工作差不多半年的时间里我就遇到了很多越界访问导致的问题(不得不吐槽下IC厂商提供的driver,总是隐藏着bug)。比如说越界访问导致的死机问题,这种问题的出现一般需要长时间测试才能发现,而且发现的时候即使有panic log。你也没什么头绪。这是为什么呢?假设驱动A通过kmalloc()申请了一段内...

2019-09-11 15:36:32 3141

原创 如何利用systrace分析Android App的死锁问题

1. 构造一个会产生死锁的代码如下:MainActivity.javapackage com.sunmi.lock;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;publ...

2019-09-02 15:56:35 617 1

转载 宋宝华: 文件读写(BIO)波澜壮阔的一生

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/juS3Ve/article/details/79890688点击上方“公众号” 可以订阅哦!前言网上关于BIO和块设备读写流程的文章何止千万,但是能够让你彻底读懂读明白的文章实在难找,可以说是越读越糊涂!我曾经跨过山和大海 也穿过...

2019-08-30 17:32:18 772

转载 浅谈Cache Memory

今天探究的主题是cache。我们围绕几个问题展开。为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么? 为什么需要cache memory 在思考cache是什么之前我们首先先来思考第一个问题:我们的程序是如何运行起来的?我们应该知道程序是运行在 RAM之中,RAM 就是我们常说的DDR(例如 DDR3、DDR4等)。我们称之为main...

2019-08-29 14:40:02 366

转载 嵌入式Linux/Android疑难杂症工作笔记

Android系统Cortex-A57 内核压力测试连续震荡性内存泄漏导致OOM Killer硬件平台公司自研 ARM Cortex-A57 4核 SOC 产品板软件环境系统: Android-PLinux内核版本: 4.9运行公司内部的kernel_submit内核压力测试脚本,通过内存工具抓取物理内存使用率的情况现象描述系统内存使用率的情况如图,该图是连续24小时L...

2019-08-28 14:35:24 639

转载 高通平台耳机插拔检测

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u012899335/article/details/82312766高通耳机的插拔检测需要配置NC或NO,并且使用匹配的耳机(欧标,美标)。欧标,美标市面的耳机有两种标准,即欧标(也叫国标)和美标。高通低端芯片无法兼...

2019-08-28 11:25:15 591

原创 绘制Linux/Android设备的内存动态变化趋势图

1.生成可执行文件收集动态内存数据\hardware\qcom\memory\memory_detect.c#include <stdio.h>#include <linux/kernel.h>#include <linux/unistd.h>#include <unistd.h> #include <sys/sysinfo.h...

2019-08-28 10:24:49 567

转载 大碰撞!当Linux多线程遭遇Linux多进程

作者简介: 廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。 拆书帮珠海百岛分舵的组织长老,二级拆书家,热爱学习,热爱分享。## 背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版...

2019-08-27 11:48:27 196

原创 高通ADSP和AP间的通讯过程

AP侧 :sensor1_handle_s *hndl1;//创建clients_mutex等互斥锁sensor1_init()/** 1. 首先获取Adsp的客户端;* 2. 创建2个线程,一个线程waiting_thread首先等待获取Adsp的客户端,一个线程client_thread建立Adsp的Response的客户端处理线程;*/sensor1_open( hndl_...

2019-08-27 11:36:45 7829

转载 Sensor系列之aDSP端Sensor Driver流程

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/huilin9960/article/details/80929499–所有的存在都是为了走向毁灭而设计的。–我们被囚禁在这…–生与死的无尽螺旋里。–这是诅咒?–还是惩罚?–面对着将无解谜题交予我们的神明,我们会有反抗的一...

2019-08-20 15:21:55 1441

原创 Dlib-人脸识别API说明

1. dlib.get_frontal_face_detector(PythonFunction,in Classes)返回值是<class ‘dlib.dlib.rectangle’>,就是一个矩形坐标为[(x1, y1) (x2, y2)]可以通过函数的left,right,top,bottom方法分别获取对应的x1, x2, y1, y2值:import cv2impo...

2019-08-20 11:20:03 2852

转载 Android分区查看方法

查看分区数: msm8953_64:/sys/class # cat /proc/partitionsmajor minor #blocks name 1 0 8192 ram0 1 1 8192 ram1 1 2 8192 ram2 1 3 8192 ra...

2019-07-18 20:18:53 4000

原创 Linux执行可执行文件提示No such file or directory的解决方法

最近在使用Linux操作系统执行一个可执行文件,结果出现了No such file or directory的提示,表示很疑惑。./tshrfbash: ./tshref: No such file or directory查看文件信息,可以看到文件是存在的,并且是可以执行的。-rwxr-xr-x 1 yuan yuan 20581 4月 29 2004 tshref查阅资料后,...

2019-07-08 21:30:33 8071

转载 Linux 如何限制用户的磁盘使用量 -- quota

1. 查看所有磁盘的容量及使用情况: 可以看到本机有三块磁盘(sda/sdb/sdc),每块磁盘的大小约1T,其中系统被安装到了sda上,另两块磁盘被挂载到了/home/mnt1 和/home/mnt2上。由于使用服务器的人只有十来个,因此可以先将用户的home目录建在这两块磁盘上,以后用户增多再建在sda上。 了解了磁盘情况,我们为每个用户设置磁盘的使用量为100G。...

2019-07-06 13:54:58 5318

转载 SEGGER-RTT调试(代替串口printf输出)的使用方法

在没有串口printf输出的情况下,可以使用SEGGER-RTT进行嵌入式开发调试。 RTT Real Time Terminal 即jink的实时终端 使用方法1. 安装jlink V5.02或以上版本的驱动![这里写图片描述](https://img-blog.csdn.net/20170402173240779?watermark/2/text/aHR0cDovL2Jsb2cuY3N...

2019-07-04 17:48:04 2522

qemu-system-arm-pi4-4.2.50 rpm 包

qemu-system-arm-pi4-4.2.50 rpm 包

2023-10-07

基于Android Ndk/Jni的内存泄漏检测

附件是Android下检测ndk和jni内存泄漏的demo,可以用于native中malloc和free的检测。使用方法(参见博客):https://blog.csdn.net/zhuyong006/article/details/88537499

2019-03-13

Android下串口通讯例程

Android下串口通讯的APK源码,基于Android Studio 2.2, 使用google开源的串口代码,全源码

2019-01-16

aarch64-linux-android-gdb

aarch64-linux-android-gdb目前已经在android的源码中不再提供了,该工具可以用于高通平台ramdump-parser的辅助工具

2018-12-24

Android下基于UVC的UsbCam的源码

Android下基于UVC的UsbCam的源码,图像采集使用的是V4L2,图像处理YUV->RGBA使用的FFmpeg,图像显示使用的GLSurfaceView

2018-12-20

Android播放yuv视频文件

Android 播放 yuv420p的视频文件,使用ffmpeg将yuv420p转换为RGBA显示

2018-12-17

基于QT和SDL的usb-camera的例程

基于QT和SDL的USB-CAMERA的抓取显示例程,其中包含SDL1.2和SDL2.0

2018-12-03

MSM8909 PWM

MSM8909 PWM 高通 ,lk,kernel,dts中pwm的配置过程,以LCD-BACKLIGHT为例说明其流程

2017-12-13

Qualcomm 7X/8X camera启动过程及自动对焦过程分析

Qualcomm 7X/8X camera启动过程及自动对焦过程分析

2013-04-25

vhdl设计的数字钟

eda ,vhdl, 包括去抖电路,及闹钟功能

2009-09-13

基于arm7的ucosII设计的电子钟

包括:时间调整:一种是GPIO,一种是外部中断, 有串口显示,以及lcd的显示

2009-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除