自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

转载 高通相机调试命令和记录

4、开启ion的trace log:echo 1 > /sys/kernel/debug/tracing/events/ion/enable。3、各进程ion使用:adb shell cat /sys/kernel/debug/dma_buf/dmaprocs。1、使用情况:adb shell cat /sys/kernel/debug/dma_buf/bufinfo。生成的手机目录为:data/vendor/camera/offlinelog。修改git编辑器 和 提交模板文件。

2023-03-31 17:25:04 534

翻译 v4l2-framework的中文翻译

Chinese translated version of Documentation/video4linux/v4l2-framework.txtIf you have any comment or update to the content, please contact theoriginal document maintainer directly. However, if you have a problemcommunicating in English you can also as.

2020-12-07 09:49:14 5772

原创 Qualcomm平台camera bringup(三)

关于dtsi的配置:Dts——device tree source(设备数源码)是一种用来描述硬件的数据结构,不同的硬件设备,其配置都是不一样的Device tree 是由一系列被命名的节点和属性组成,而节点本身可包含子节点。所谓属性,其实就是成对出现的name和value。Device tree的基本单元是node。这些node被组织成树状结构,除了root node, 每个node都只有一个parent。一个device tree文件中只能有一个root node。每个node中包含了若干的

2020-11-30 21:38:35 2903

原创 Qualcomm平台camera bringup(二)

本文介绍一下上下电时序:power_setting_a跟power_down_setting_a结构体数组都是包含在power_setting_array这个大的结构体下面的,而power_setting_array又是在sensor_slave_info这个大的结构体下面;struct camera_sensor_slave_info sensor_slave_infostruct camera_sensor_slave_info { char sensor_name[32];

2020-11-30 10:02:58 711

原创 Qualcomm平台camera bringup(一)

vendor入口函数sensor_init.c文件 调用probe函数static boolean sensor_probe(module_sensor_ctrl_t *module_ctrl, int32_t fd, const char *sensor_name, char *path, struct xmlCameraConfigInfo *xmlConfig, boolean is_stereo_config, boolean bypass_video_node_creation)

2020-11-24 16:03:14 1210 1

转载 关于堆栈的讲解

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(stati...

2020-03-17 10:33:18 229

转载 camera 上电时序

camera 上电时序 可以参考这篇博文https://blog.csdn.net/m0_37166404/article/details/64920910

2020-01-15 15:44:00 1565

原创 关于内存的思考题

1、void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str); } 2、char *Get...

2019-08-14 20:43:39 304

原创 static的作用

1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范...

2019-08-14 17:43:23 6803 1

原创 Makefile文件里的=、:=、+=区别

‘=’定义的叫递归展开式变量,用它给某个变量赋值,后面的表达式不会在定义时就展开,而是在make程序执行到他的相关操作的时候才展开——即用的时候才生效‘:=’定义的叫直接展开式变量,赋值时将后面表达式的值马上展开传递给变量——即立即生效。+=,-=这种是用来对变量进行追加定义的操作符,在原有的定义基础上加上或减去某个定义,比如去掉某个对象.o文件。下面举个例子说明makefil...

2019-05-17 10:03:06 724

原创 串的数据结构表-----顺序串与链式串

串的结构类似与线性表,只不过串的数据元素是一个字符,即是由零个或多个字符组成的有限序列。一、串的顺序存储串的顺序存储结构也就是顺序存储,即串中的字符被一次的存在一组连续的存储单元中,可以类比线性表的顺序存储,可以写出其数据结构如下:typedef struct st{ char *ch; //串存放的起始地址,串中第i个字符存储在ch[i-1]中 int...

2019-04-24 16:03:24 1989

原创 手机camera新篇章

什么是CCM?1、紧凑摄像模组(Campact Camera Module)2、CMOS摄像模组(CMOS Camera Module)3、手机摄像模组(Cellphone Camera Module)手机摄像头模组由镜头、传感器、电容、FPC板、镜座、连接器组成!!!!!!!!!!!!CCM的主要组成部分是:镜头(Lens)、红外滤光片(IR Filter)、图像传感器(Se...

2019-04-01 17:51:03 1256 1

原创 camera回顾

摄像头分为模拟摄像头和数字摄像头,现在市场上大部分的都是使用新型数据传输接口的USB数字摄像头!Camera Module主要组成部分: 镜头(Lens)、图像传感器(Sensor IC)、数字信号处理芯片(DSP);CCM的主要组成部分是:镜头(Lens)、红外滤光片(IR Filter)、图像传感器(Sensor IC)、数字信号处理(DSP)及软板 ...

2019-04-01 14:35:49 1199

原创 git的使用总结

原文参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000git跟踪并管理的是修改,而非是文件;修改指的是:比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。1、...

2019-03-27 17:39:38 155

原创 结构体所占内存的字节数——内存对齐

1、什么是内存对齐?下面先来看一个例子:#include <stdio.h>int main(){ struct Text1 { char c1; short s; char c2; int i; }; struct Text2 { char c1; char c2; short s; int i;...

2019-03-22 15:16:40 1863

原创 对字符串和字符数组自己的理解

这几天看了很多关于字符串和字符数组方面的书与资料,下面自己来总结一下:在C语言中,是没有字符串这个概念的(C++有),但是它又不得不去用到,怎么办呢?用字符数组来代替!一、首先,先来说说字符数组的定义与初始化字符数组的初始化有两种方式:且这两种方式等价!①:char a[] = {'h','e','l','l','o','\0'}; //逐个赋值,这里要注意的是数组内...

2019-03-21 14:45:15 656

原创 指针数组和数组指针

一、首先看一下概念:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少字节由数组本身决定数组指针:首先它是一个指针,它指向一个数组。在32位系统下永远是占4字节二、说到这,就不得不来谈谈指针和数组之间的一些联系了:依《C语言深度解剖》一书中的分析来说,指针和数组之间并无任何关系;指针就是指针,指针变量在32位系统下,永远占4字节,其值为某一个内存的地址。数组就是数组...

2019-03-20 15:03:32 286

原创 常量指针与指针常量

这两个概念可以说是很容易就在C语言中弄混淆了;先列举几个例子(1):const char* p;(2):char* const p = a;(3):char* p = "abc";下面是分析:语句(1)中定义了一个常量指针,即指向一个常量的指针,指向的内容是常量,不可修改,放在常量区的,但指针本身可以修改,即“*p = 'b'"是非法的,*p是p指向的常量的第一个字符,是个常量...

2019-03-19 14:36:30 551

原创 重温C语言

C语言程序的三种基本结构:顺序结构、选择结构、循环结构 C语言可处理的文件类型是 :文本文件和二进制文件 C语言中最简单的数据类型包括:整型、实型、字符型 sizeof是运算符,参数可以是数组、指针、函数、类型、对象等 ;...

2019-03-15 14:20:11 187

原创 对DTS的一些浅显理解(未完待续——第九天)

DT(Device Tree):是一种描述硬件的数据结构,由一系列被命名的结点(node)和属性(property)组成DTS:设备树源1:设备树的由来在Linux内核源码的ARM体系结构引入设备树之前,相关的BSP代码充斥了大量的平台设备(PlatformDevice)代码,而这些代码大多都是重复的、杂乱的。之前的内核移植工作有很大一部分就是在复制一份BSP代码,并修改BSP代...

2019-03-14 14:09:32 945

原创 对设备模型的简单理解

1.为什么要引用设备模型呢?设备模型简单来说就是一套用数据结构搭建起来的模型,内核通过使用该模型支持了多种不同的任务,包括:①:电源管理和系统关机设备模型能够使操作系统以正确的顺序遍历系统硬件。②:与用户空间通信Sysfs文件系统向用户空间提供系统信息以及改变操作参数的结构。③:热插拔事件④:设备类型系统中许多部分对设备如何连接不感兴趣,但是他们需要知道哪些类型设备...

2019-03-13 19:09:18 684

原创 驱动开发之字符设备驱动(第七天)

Linux系统中根据驱动程序实现的模拟框架将设备的驱动分为了三大类:一:字符设备驱动设备对数据的处理是按照字节流的形式进行的,可以支持随机访问,也可以不支持随机访问,因为数据流量通常不是很大,所以一般没有页高速缓存(是linux内核实现磁盘缓存。它主要用来减少对磁盘的I/O操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问)。典型的字符设备有串口(串行...

2019-03-12 11:03:23 371

原创 正式开始学习Linux驱动开发教程一书(第六天)

理解常用知识点①:Linux驱动开发是内核级别的开发,驱动程序的任何问题都可能引起整个系统的崩溃②:驱动程序通常都要进行中断处理③:驱动程有更多的并发环境需要考虑④:驱动程序是被动接受上层调用的代码,是为上层提供服务的一套代码,所以我们会在驱动中看到很多注册和注销的函数⑤:一类驱动都有一个特定的实现模板,在这里姑且称为驱动的框架⑥:Linux的内核源码编译后将会生成一个总的...

2019-03-11 16:13:49 142

原创 camera学习所必备的知识(第六天)

1:硬件相关:简单的数字电路要懂,看的懂电路图(这个很简单),能根据电路找到相应Camera硬件连接的GPIO,并根据芯片手册配置GPIO为相应的模式;比如GPIO模式,输入IO或输出IO;或配置成PWM模式;不同的模式这个GPIO的工作方式是不同的;2:Camera驱动:比如ov5640;你要找本Linux驱动相关的书看看,比如《linux设备驱动程序》知道简单的linux设备驱动写法;当然工...

2019-03-11 09:46:56 1914

原创 高通camera结构(第五天)

一、摄像头的结构和工作原理镜头用来拍摄景物,拍摄的图片在传感器上将光信号转换成了电信号,电信号经过AD转换器(模数转换器)转换成了数字信号,数字信号经过DSP(数字信号处理器)进行加工处理,再被送到电脑中进行处理,最终转换成了手机屏幕上我们可以看到的图像。数字信号处理器芯片(DSP)功能:主要是通过一系列数学的算法运算,对数字图像信号进行优化处理,并把处理过的信号通过USB等接口...

2019-03-08 15:59:12 754

转载 LinuxDTS

@[T义目录标题)本系列导航:Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953实例分析篇)有上一篇文章,我们了解了dts的背景知识和相关基础...

2019-03-07 17:31:43 2491

原创 学习camera的理论基础(第四天)

一:摄像头模组(CCM)1:camera 特写摄像头模组, Camera Compact Module,简写为CCM,是影响捕捉至关重要的电子器件。如图所示2、摄像头工作原理、camera的组成各组件的作用(1)工作原理:物体通过镜头(lens)聚焦的光,通过CMOS或CCD集成电路,把光信号转换成电信号,再经过内部图像处理器(ISP)转换成数字图像信号输出到数字信号处理器(D...

2019-03-07 14:55:23 942

原创 入职实习第三天

开始对驱动进行入门了解三种设备驱动分类:①:字符设备驱动(以字节为单位读写的设备)②:块设备驱动(通过/dev目录下的文件系统节点来访问)③:网络设备驱动(能够和其他主机进行交换数据的设备)☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(1) 在Linux文件系统中,每个文件都用一个struct inode结构体来描述,这个结构体记录了这个文件的所有信息,例...

2019-03-06 15:06:51 253

原创 堆和栈(番外)

什么是堆:堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。   什么是栈:栈是线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立。每个函数都有自己的栈,栈被用来在函数之间传递参数。操作系统在切...

2018-06-25 21:20:55 105

原创 学习C基础语言之八

6.10共用体:对应的空间是同一块区域;===》这个区域有多大呢?==》以共用体里面最大数据类型为准;char ch[M]; //M % 4 = 0; ===》M//M % 4 != 0 ===》(M / 4 + 1) *4;只不过是解析方式不一样!//造汽车,姚明和潘长江;枚举:#define MONDAY 1#define TUESDAY 2..#define FRI...

2018-06-10 23:45:42 123

原创 学习基础C语言之七

学习安排:1、二级指针;2、宏定义和自定义函数的区别;===》内联函数;3、#define和typedef;4、结构体、共用体、枚举和位运算;大小端!明天:链表二级指针:一级指针是变量 ===》既然是变量,所以肯定有地址! ==》有没有其他的手段来保存一级指针变量的地址?==》引入了二级指针:用来保存一级指针的地址!1、掌握二级指针变量的定义方法;二级指针要掌握的东西:1、...

2018-06-10 23:41:55 459

原创 学习基础C语言之六

2018.5.27一维数组的数组名代表的是数组首元素的地址;对一维数组名取地址,代表的是数组的地址;二维数组的数组名代表的是第一个一维数组的地址;对二维数组名取地址,代表的是二维数组的地址!int a[3][2];a[0]:是二维数组中第一个一维数组的数组名;a[1]:是二维数组中第二个一维数组的数组名;a[2]:是二维数组中第三个一维数组的数组名;a : 第一个一维数组的地址;...

2018-05-27 23:44:10 152

原创 对函数的认识——1

感觉除了指针、数组,函数也是令我较为头疼的一部分了,然而想学好C语言,这部分还是不得不掌握的;printf(格式输出)、scanf(格式输出):最基本的输入输出函数;printf函数的一般形式为:printf(格式控制,输出表列)eg:printf("%d.%c\n",i,c);括号内包括两部分:(1)"格式控制"是用双撇号括起来的一个字符串,称“转换控制字符串”,简称“格式字符串”。它包括两个信...

2018-05-23 23:17:25 1133

原创 学习基础C语言之四

这是一条从中午开始编辑的博文:突然想写,是因为灵感突袭:自己通过对比这两天学的动态库与静态库的创建以及今天Makefile的运用,总结出了至关重要的一点,无论哪种方式,最为关键的一步都是生成.o文件(即目标文件):运用动态库与静态库时,则还需要调用库函数,而运用Makefile则完全不需要。今天真的学的有点精疲力尽了、一下子给我灌输如此之多的知识、通并快乐着:一、如何使用Makefile:...

2018-05-23 19:05:34 195

空空如也

空空如也

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

TA关注的人

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