自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 camera daemon进程之af模块

当然和别的模块一样,af也是从af_module.c里面的af_module_init函数开始看起,当然在应该开始看的地方还是stats模块,从stats模块的初始化开始看起,接下来是3a模块,这篇博客讲的只是3a下面的af模块。接下来看af_module_init函数标红的地方,第一个创建af模块,所有的模块都会调用这个函数,共用的接口,这个函数是在mct_module.c里面主要就是这...

2021-01-15 16:42:06 377

原创 isp2模块的初始化isp_module.c文件开始

简单了解一下isp模块的初始化过程都做了什么事情,之前我们看了sensor模块的开机初始化过程,博客已经写的很详细了,今天就分析一下isp模块的初始化过程。首先从isp_module.c文件的初始化开始分析:重点函数已经标注出来了,接下来一个看这些函数都是做什么的。先看第一个函数,这个函数好像是填充一些函数的,但是目前还看不出来到底是做什么的,代码先贴到这里,画个问号...

2021-01-15 16:41:48 522

原创 camera预览数据流代码流程

之前的一篇博客,我们看到了addstreamtochannel,以预览为例,当然把预览需要的stream全部add进预览的channel,这句话没毛病。Z:\code\2700\HLOS\frameworks\av\services\camera\libcameraservice\device1\camerahardwareinterface.cpp的代码开始status_t Camera...

2019-12-27 11:31:41 898 1

原创 高通平台 点亮camera eeprom actuator

这篇文章是基于sdm429平台,和8937是比较接近的一个平台,主要概括一下如何点亮camera eeprom actuator,上一篇文章详细说明了如何点亮flash,有些细节这里就不说了,主要说一下需要改哪些文件kernel下面要修改的文件就是dtsi文件首先就是dtsi文件,这个要配置好,配置如下qcom,camera@0 { cell-index = &...

2019-09-30 15:28:59 3548 1

原创 发个牢骚

这几天锻炼的有点多,坐一天是腰酸背疼的,脖子也是疼的难受,60个弓箭步,做三组,深蹲50个,感觉腿已经不是自己的了。50个窄距俯卧撑,50个宽距俯卧撑,各种狂虐腹肌的动作,虐腹肌真的是很难受,第一组没什么感觉,从第二组开始就是火辣辣的感觉,那种感觉有时候情不自禁的就会大声的喊出来。趁自己还没有老去,给自己一点时间,给自己一个机会,去做自己想做的事情。下班,去买一个巧乐兹O(∩_∩...

2019-09-24 09:30:22 156

原创 高通camera二供兼容

做项目的时候,经常会遇到新物料导入,我们一般叫二供,换了一家供应商,换不换供应商,我们这些做技术的小喽啰说了不算。当然大家都知道,这个和公司的采购强相关,当然和采购的老大更是密不可分.........................听说某大厂的采购老大,在深圳已经买了好几套房子了。当然,我们做好这颗料的兼容就行了,下面介绍一下高通8909平台(可以当古董拍卖的平台)如何兼容一颗新的camera。...

2019-09-24 09:28:26 1074

原创 JAVA知识点总结图

2019-08-24 10:30:43 155

原创 展讯平台如何dump YUV

adb rootadb remountadb shell setprop debug.camera.dump.frame preview 默认dump前10帧 这个命令是默认dump前10帧adb pull /data/misc/media/ 新建文件夹其实自己可以修改,想dump多少帧都可以,修改方法如下当你dump出来之后,你会发现uv ,y是分开的,但是我们要...

2019-08-24 10:22:55 706

原创 camera 驱动 关于mipi的一些计算

static struct sensor_lib_out_info_t sensor_out_info[] = { /*RES 0*/ { .x_output = 3264, .y_output = 2448, .line_length_pclk = 1932, .frame_length_lines = 2482, .vt_pixel_clk ...

2019-06-11 15:07:07 10719 3

原创 ZSL拍照和普通拍照

ZSL(zero shutter lag):google翻译为零快门滞后。也是就是我们经常讲的零延时拍照。在日常生活中,相信大家拍照的时候有一种感觉就是,拍照会有延迟,这总感觉是很微妙的,为了解决这个问题,开发出了另一种拍照模式,零延时拍照,即拍即看。一般情况下,拍照流程如下:从图中我们可以看到,开始预览,出预览帧,这个时候已经正常预览了,这个时候按下shutter,开始拍照,开始...

2019-06-10 17:24:36 8560 1

原创 camera crash

camera crash很是让人崩溃,遇到这种问题,出来一大堆地址和报错的库。看着很头大,我们常见的方法addr2line来解析到是哪一个函数,哪一行报错,这样子的话,分析起来问题,范围就会缩小很多。首先看一个camera crash的log。06-04 14:33:13.860 411 17923 F libc : Fatal signal 11 (SIGSEGV), code...

2019-06-10 11:38:03 739

原创 高通camera dtsi的配置方法

\kernel\arch\arm\boot\dts\qcom\dtsi文件在这个路径下面。sensor ,eeporm,actuator都在这个文件里面配置。包括上电时序,每路电是配置多大的电压。下面一一讲解:eeprom0: qcom,eeprom@5a { cell-index = <0>; reg = <0x5A>; ...

2019-06-10 10:59:08 6198

原创 高通camera open代码流程(hal到kernel)

内容:简单介绍Camera open代码调用流程,从HAl到kernel。(api1+hal1)前言Android camera api和hal对应关系。安卓在版本更新过程中,camera相关代码也经历了几个版本的更新,表现为camera HAL版本更新(HAL1->HAL2->HAL3),camera API版本更新(camera API1->camera API2),接下...

2019-05-31 10:52:52 3807

原创 C++类模版

假设T是一个类模板的模板参数,当编译器遇到类似T::size_type这样的代码时,它不会知道size_type是一个自定义的类型还是类的静态成员变量,直到实例化时才会知道。例如,在类模板的某个成员函数中有如下代码 template&lt;typename T&gt; void MyClass&lt;T&gt;::MyFunc() { T::size_type*...

2018-09-28 15:32:42 158

原创 选择排序,冒泡排序,归并排序,快速排序,堆排序等等

#includeusing namespace std;void BubbleSort1(int a[],int size) //冒泡排序{ assert(a); int i = 0; int j = 0; for( i=0; i<size; i++ ) { for( j=1; j<size-i; j++ ) { if( a[j-1] > a[j] ) swap(a

2017-04-27 17:01:27 251

原创 Linux驱动开发之字符设备

字符设备是驱动开发中最简单的一种设备(通过字符设备来写寄存器,从而起到一个驱动的作用),struct cdev结构体是内核用来描述一个字符设备的,是内核已经封装好的,程序员只需要直接定义一个这样的结构体变量即可。struct cdev {struct kobject kobj;          // 每个cdev 都有一个 kobjectstruct module *owner;

2017-04-27 14:49:22 303

原创 C++中的四种强制类型的转换

今天是周三,2点来到图书馆,同学们打电话让去打篮球,可是我不能去,因为还有好多知识没有学习到,图书馆环境不错很适合学习,写一篇博客吧:)C++中的四种强制类型转换,面试中有面试官问到我这个问题,闲话不多说了。1.dynamic_cast运算符功能:该转换符用于将一个指向派生类的基类指针或引用转换为派生类的指针或引用。注意:dynamic_cast只能用于含有虚函数的类,其...

2016-04-13 19:55:52 429

原创 C++中广义表的实现

#includeusing namespace std;enum NodeType{HEAD_TYPE,SUB_TYPE,VALUE_TYPE,};struct GeneralListNode{GeneralListNode* _next;NodeType _type;union{

2016-04-13 18:37:37 530 1

原创 走迷宫

#includeusing namespace std;#include#define N 10struct Point{size_t _row;size_t _col;};Point entry = {2,0};stack s;void InitMain(int array[][N],int size)//初

2016-04-11 17:08:05 299

原创 两个队列实现一个栈

#include"bbb.hpp"//void Test1()//{// Queue q1;// q1.Push(1);// q1.Push(2);// q1.Push(3);// q1.Push(4);// q1.Push(5);// q1.Pop();// while(!q1.Empty())// {

2016-04-10 14:10:21 230

原创 两个栈实现一个队列

//aaa.hpp#include using namespace std;templateclass Stack{public:Stack():_array(NULL),_TopIndex(-1),_capacity(0){}void Push(T x){if(_TopIndex + 1 == _capacity){_capacit

2016-04-10 12:33:35 176

原创 引用计数

#includeusing namespace std;class String{public:String(const char* str):_str(new char[strlen(str)+1]){strcpy(_str,str);_refcount = new int(1);}~String()

2016-04-10 10:28:59 186

原创 C++中的菱形继承

#include #include using namespace std;class Botany{public:Botany(const Botany& b1)//对象作为参数:_name(b1._name){}Botany(const char* ptr)//字符串作为参数:_name(p

2016-04-10 10:26:12 220

原创 C++实现双向链表

#include using namespace std;typedef int DateType;class LinkNode{friend  class List;public:LinkNode( const DateType& x):_data(x),_prev(NULL),_next(NULL){}

2016-04-09 13:37:46 206

原创 C++实现的顺序表

#include using namespace std;typedef int DataType;class SeqList{public:SeqList():_array(NULL),_size(0)//有效个数,_capicity(0)//容量{}~SeqList(){if(_array){delete[]_array;}}

2016-04-09 13:32:55 195

原创 C++中Sting类的深拷贝

#include #include using namespace std;class String{public:String(char* str){_str = new char[(strlen(str) + 1)];strcpy(_str,str);}~String(){if(_str)

2016-04-07 12:14:48 223

原创 C++中运算符的重载

#includeusing namespace std;class Complex{public:Complex (double real = 0 , double image = 0 );// ~Complex();Complex (const Complex& d);Complex& operator= (const Complex& d);

2016-04-07 12:07:42 198

原创 2进制数中,多少个位不同

//#include //int is_su(int num)//{// int j = 1;// for(j =2; j// {// if(num%j == 0)// return 0;// }// return 1;//}//int main()//{// int i = 0;// int ret;// for(i = 1; i/

2016-04-06 17:35:25 253

原创 模版实现单链表

PLinkList _CreateNode(DataType x){PLinkList tmp = (PLinkList)malloc(sizeof(Node));tmp->data = x;tmp->next = NULL;return tmp;}void InitList(PLinkList* ppList){

2016-04-06 13:10:26 243

原创 模版实现顺序表

void InitSeqList(SeqList* pSeq){assert(pSeq);memset(pSeq->array,0,sizeof(DataType) * 100);pSeq->size = 0;}void PrintSeqList(SeqList* pSeq){int i = 0;assert(pSeq);for(;isize;i++

2016-04-06 13:07:38 190

原创 三步法翻转字符串

#include #include #include #define pos 5char *left(char *head,char *tail){assert(head&&tail);while(head{char tmp = *head;*head = *tail;*tail = tmp;head++;tail--;}return h

2015-06-26 11:22:51 302

原创 暴力移位法翻转字符串

#include void leftchar(char *p,int n)//abcdef{char first = *p;int i = 0;for(;i{*(p+i) = *(p+i+1);}*(p+n-1) = first;}int main(){char s[] = "abcdef";int m = 3;while(m--){

2015-06-18 20:38:00 298

原创 自己实现内存拷贝函数memcpy

#include #includevoid *Memcpy(char *dst,  char *src, size_t size){assert(src&&dst);if( (dst>src) && (dst{src =  src+size-1;dst = dst+size-1;*src = *dst;}}int main (){char a

2015-06-15 20:21:08 712

原创 翻转倒过来的字符串

// student a am i//i am a student #include#include#includevoid reverse_string(char *left,char *right){assert(left && right);while(left {char tmp= *left;*left = *right;*right =

2015-06-14 12:29:58 418

原创 比较2个字符串的大小strcmp

#include int my_strcmp(char *pa,char *pb){while(*pa==*pb){pa++;pb++;if(*pa==*pb=='\0')return 0;}if(*pa>*pb)return 1;elsereturn -1;}int main (){int ret;char *A="aabc

2015-05-20 21:33:08 1961

原创 自己实现字符串连接函数strcat

#include char *my_strcat(char *pa,const char *pb){while(*pa!='\0'){pa++;}while(*pb!='\0'){*pa=*pb;pa++;pb++;}*pa='\0';return pa;}int main (){char A[20]="liwanchao";

2015-05-20 21:09:31 889

原创 自己实现strcpy字符串复制函数

#include #include char *my_strcpy(char *p,const char *q){assert(p&&q);while(*q!='\0'){*p=*q;p++;q++;}return p;}int main (){ char A[20]="";char *B="agfbfjkregre";my_st

2015-05-20 19:04:38 508

原创 判断大端和小端2种不同的方法

第一种方法:指针的方法#include int main (){int a=1;int *p=&a;char *q=(char *)&a;if(*q==1)printf("little\n");elseprintf("big\n");return 0;}第二种方法:利用联合体#include union A{int a;cha

2015-05-18 15:31:36 367

原创 给一个整数字符串,求这个整数各个位的和

#include int my_daa(int b){if(breturn b;elsereturn b%10+my_daa(b/10);}int main (){int a=my_daa(1234);printf("%d\n",a);return 0;}

2015-05-11 12:29:32 295

原创 在原来的基础上翻转数组

#include int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int *l=a;int j;int *r=a+9;int tmp;while(l{tmp=*l;*l=*r;*r=tmp;l++;r--;}for(j=0;jprintf("%d ",a[j]);return 0;

2015-05-09 15:40:48 304

空空如也

空空如也

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

TA关注的人

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