- 博客(15)
- 资源 (6)
- 收藏
- 关注
原创 Android Camera HIDL交互分析
Android CameraHIDL交互分析1.1java层openCamera逻辑APP层调用CameraManager中的openCamera打开camera。APP-->openCamera|||---> openCameraForUid|||--->openCameraDeviceUserAsync① 首先通过cameraService = CameraManagerGlobal.get().getCa...
2020-06-23 17:15:50 3027
原创 V4l2框架分析
1. V4L2框架概述1.1 v4l2设备应用层流程1.2 内核V4L2模块 22. video_device2.1图像处理模块2.2 video注册流程3. videobuf23.1 与video device的关系:3.2 buffer类型3.3 vb2_ops回调函数3.4 mmap 流程...
2020-06-23 16:44:51 6700 1
原创 linux进程分析之旅04---程序加载分析之_RTLD
一.RTLD的作用 当程序需要动态链接 的应用被操作系统加载时,系统必须要重定位,然后加载它所需要的所有动态库文件。 这项工作是由glibc中RTLD(Run time dynamic linker)来负责完成的。而ld.so是动态链接程序RTLD生成的动态链接库.那么就出现一个问题:RTLD也就是ld.so是如何加载,加载完成之后它又是如何加载其他的so函数的呢?通过下...
2020-06-23 16:39:44 1564
原创 linux进程分析之旅03---程序执行流程概要分析
在终端敲入./a.out 的执行流程图一.fork()1.shell进程调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。2.子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。3.fork执行流程如下:大致流程如下...
2020-06-23 16:38:43 267
原创 linux进程分析之旅02--可执行文件ELF格式分析
上章所生成的可执行文件是一种ELF文件。所以这次来分析下什么是ELF。一、什么是ELF定义:ELF 英文全称为Executable and Linking Format即可执行链接格式,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。那么什么又是ABI? ABI描述了应用程序与OS之间的底层接口。ABI涉及了程序的各个方...
2020-06-23 16:38:16 425
原创 linux进程分析之旅01--C程序的可执行文件形成过程
一、可执行文件的生成 进程的未运行时的载体是可执行文件,一般放在磁盘或者ROM中,也就是我们常说的bin文件,linux /usr/bin/目录下的常用系统命令如ps、top、ls等都是可执行bin文件。一个进程是通过终端或者脚本启动可执行文件,而可执行文件是由C 程序通过执行gcc命令,经历预处理、编译、汇编、链接四个过程形成的,如下图所示:其中 test.c是main函...
2020-06-23 16:06:41 200
原创 android图形框架之surfaceflinger分析(一)
1. 概念 surfaceflinger作用是接受多个来源的图形显示数据,将他们合成,然后发送到显示设备。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是有surfaceflinger合成一个刷新到硬件显示。在显示过程中使用到了bufferqueue,surfaceflinger作为consumer方,...
2020-04-17 16:31:25 4344
原创 mx6 CSR8670驱动移植 基于linux3.14.58
1. 设备树配置:UART2BT_WAKE_DEV gpio2-15 //BT_HOST_WAKE gpio2-13 //INPUT 主控唤醒 可不用先//our btpinctrl_blueth: bluethgrp { fsl,pins = < MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS ...
2018-03-19 22:44:11 646
原创 imx6q sgtl5000 alsa驱动分析与调试
一. ALSA的ASoC框架简介按照 ASoC如下图1,框架的设计理念,源码文件应该分为 3 个部分,分别是 Platform Driver、Machine Driver、Codec Driver,这 3 者为并行关系,各对应一份源码。其中,Platform Driver 相关的源码主要实现 DMA 功能和 DAI,即 DSP 模块的 I2S 数据传输功能,并导出相应变量或操作函数
2017-08-07 15:22:10 3099
原创 android应用与Linux内核驱动数据交互
一.Linux内核驱动层1. 确定你想进行数据交互的驱动模块, 比如要与驱动名为 serio_module的驱动交互2. 确定在驱动模块文件中使用的交互变量, 比如需要交互的变量为 static int s_connect_value[3] ={1,2,3};那么需要在驱动程序中添加module_param_array(s_connect_value,int NULL,S_IR
2017-07-13 09:59:01 1111
原创 android shell 命令--- input
1 . input命令简介input 命令主要模拟android输入时间, 比如文本字符输入,或者按键输入bash# input usage: input[text|keyevent] input text string> input keyevent 3.aosp源码位置myandroid/frameworks/base/cmds/input/src/com/andro
2017-06-29 09:00:27 1404
原创 android 系统触摸屏BUG解决过程分析
BUG描述: 添加触摸屏驱动后, apk对触摸事件没有响应.Linux 层驱动移植内核根目录 make menuconfig更改 “Device Drivers” ->“HID Devices” 下的 “/dev/hidraw” “PID device support” 和 “/dev/hiddev” 三个位置置成*复制 “ilitek_auv3X...
2017-06-07 11:29:29 6775 1
原创 多核优化,使用linux affinity 将进程,线程,中断指定到对应的cpu运行,用ftrace查看消耗时间
cpu的affinity简介使用cpu的affinity机制可以将对应的进程,线程,以及中断指定代对应的cpu上运行,如果合理配置,减少某个cpu负担,提高其他cpu的使用率,从而到达提高系统性能的效果.相关监控命令查看cpu状态,及设置cpu开关及其频率 位置:$ ls /sys/devices/system/cpu
2017-06-05 10:26:24 2086
原创 st7789 320*240 显示屏,uboot驱动移植笔记
st7789 使用spi初始化,rgb数据总线传输。1.首次编译错误报错如下:libgcc.a(bpabi.o) uses VFP registerarguments, u-boot does not修改如下:--- a/arch/arm/config.mk+++ b/arch/arm/config.mk@@ -16,7 +16,7 @@ endif
2017-05-23 12:11:37 8050
原创 nfc ntag21x ultralight 内存结构
ntag21x的内存结构类似于EEPROM,按页访问,一个页4个字节,容量越大的ntag,页数也越大,内存结构也有点不同.一.下面是nta216内存结构: 图:012.序列号也就是UID一共有七个在page0, page1中, 内存结构如下
2016-09-08 13:59:25 2473 1
The Linux Programming Interface-handbook-Michael Kerrisk
2018-05-18
TI BLE stack_1.4.0_包含文档 源码 工具
2015-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人