- 博客(39)
- 资源 (7)
- 收藏
- 关注
原创 高通kmd的smmu笔记
IOMMU 将设备可见的虚拟地址 (IOVA) 映射到物理内存地址。不同的硬件体系结构有不同的 IOMMU 实现,ARM 平台的 IOMMU 是 SMMU (System Memory Management)。2条通路有什么区别?
2024-01-10 22:42:31
794
原创 CRM如何精确控制RT设备和与UMD通信笔记
在stream on之前提前配置HW。打开early PCR后,ISP只会丢1帧。如果不打开,可能丢2或3帧,根据设备性能不同,如果性能好,第一个SOF到来处理frame1时,streamon已打开,则丢2帧。否则性能一般,在第二个SOF到来处理frame2时,streamon才打开,则丢3帧。
2024-01-06 22:44:44
663
2
原创 CRM的request管理笔记
什么是in_q在link中存放的输入请求队列。//link中有多少个device...//自定义的workqueue,处理工作队列中work//存放link中device//req_data//看门狗,监控sof是否超时,sensor是否长时间没有出帧...其中cam_req_mgr_req_data 定义中有in_q和 req_tbl。//保存Input request queue//保存request table//保存req table的个数。
2024-01-06 11:14:49
752
1
原创 ISP 状态机轮转和bubble恢复机制学习笔记
ISP中断类型SOF: 一帧图像数据开始传输EOF: 一帧图像数据传输完成REG_UPDATE: ISP寄存器更新完成(每个reg group都有独立的这个中断)EPOCH: ISP某一行结尾(默认20)就会产生此中断BUFFER DONE: 一帧图像数据ISP完全写到DDR了。
2023-12-24 22:49:44
1066
1
原创 高通CRM的v4l2驱动模型
在创建v4l2 subdev对象时,会创建一个video device,而devnode会执行创建设备video_device,结点名称为/dev/v4l2-subdev0。//创建设备节点/dev/v4l2-subdevX时创建的video_device。2、分配和初始化media device对象,然后将v4l2 device中mdev绑定到media device上。3、分配和初始化video device对象,将其中v4l2 device指向前面创建的v4l2 device对象;
2023-12-09 12:21:33
311
原创 Linux Component概述和高通component的使用
为了让subsystem按照一定顺序初始化设备才提出来的。subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video device),这时就要用到component框架。例如v4l2 subdev和v4l2 video device中,谁依赖谁先创建?
2023-12-07 21:01:06
594
原创 Unable to get provider com.tencent.bugly.beta.utils.BuglyFileProvider运行错误
06-30 19:54:27.829 30140 30140 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.tencent.bugly.beta.utils.BuglyFileProvider: java.lang.ClassNotFoundException: Didn't find class "com.tencent.bugly.beta.utils.BuglyFileProvider" on pat.
2021-07-01 09:10:54
1809
原创 Failed to load E:\SDK\android-sdk-windows\build-tools\27.0.2\lib\dx.jar如何简单解决
Eclipse遇到如下错误:Failed to load E:\SDK\android-sdk-windows\build-tools\27.0.2\lib\dx.jar原因:eclipse自动使用最高版本的SDK,ADT比SDK版本低导致解决办法:1、用SDK Manager.exe下载低版本的build-tools,如25.0.22、add this
2017-12-19 13:26:31
21708
1
原创 重要的系统调用函数头文件介绍
最常用办法:在终端输入 man 2 open 直接查看open使用方法2、遇到编译错误,如何解决:上述错误表示找不到write、read的函数定义,要检查头文件是否包含,加入即可解决。3、最常用的几个系统调用函数系统调用 ---文件的操作函数#inlclude int open(char *name,int how) 文件打开#in
2016-11-01 11:01:07
2593
原创 git 常用命令
一、git 如何生成patch和应用patch在接着说说git format-patch生成的补丁,这是git专用的,也是日常工作中最常接触到的补丁类型。常用命令如下: 1)两个节点之间的提交: git format-patch 节点A 节点B 2)单个节点: git format-patch -1 节点A (-n就表示要生成几个节点的提交)
2016-10-14 10:16:57
822
原创 Ios学习网站
深度开源 OPEN经验----IOShttp://www.open-open.com/lib/tag/IOS?pn=5【同行说技术】iOS程序员从小白到大神必读资 料汇总(一)http://www.open-open.com/solution/view/1452484016917
2016-10-11 14:57:26
310
原创 C语言基本 关键词__attribute__
int32_t sensor_calculate_exposure(float real_gain, uint32_t line_count, sensor_exposure_info_t *exp_info, __attribute__((unused)) float s_real_gain){ if (!exp_info) { return -1;
2016-10-11 14:49:33
462
原创 ctags的安装和使用
一、如何安装两种办法:1)ubuntu系统中,终端执行: sudo apt-get install ctags或者sudo apt-get install exuberant-ctags安装成功后,终端执行ctags,会有提示:ctags --help会显示一大堆命令帮忙信息表明安装成功2)下载ctags-5.8.tar.gzi)在终端解压:tar -zxvf ctags
2016-10-11 11:43:22
7767
原创 linux 内核中的container_of()如何使用
一、如何使用我们先来分析一下container_of(ptr,type,member),这里面有ptr,type,member分别代表指针、类型、成员。看一个例子:struct test { int i; int j; char k; };
2016-10-09 15:35:02
5167
原创 strstr、strspn如何使用
一、strspn函数1)头文件:#include strspn() 函数用来计算字符串 str 中连续有几个字符都属于字符串 accept,其原型为:size_t strspn(const char *str, const char * accept);【函数说明】strspn() 从参数 str 字符串的开头计算连续的字符,而这些字符都完全是 accept 所指字符串中的
2016-09-29 15:01:44
5168
原创 dlsym使用实例
#define LIB_FULL_NAME "/system/lib/libipod.so"void (*libipod_exit)(int reason) = NULL;static void (*libipod_setup)(struct ipod_param *) = NULL;void (*libipod_log)(const char *fmt, ...) = NULL;
2016-09-26 20:22:47
2607
原创 Eclipse 快捷键
Ctrl+Y 重做(与撤销Ctrl+Z相反)Alt+/ 内容辅助(帮你省了多少次键盘敲打,太常用了)Ctrl+D 删除当前行或者多行Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
2015-10-05 21:21:25
407
原创 snprintf()和sprintf()学习
一、参数及头文件snprintf()函数用于将格式化的数据写入字符串,其原型为: int snprintf(char *str, int n, char * format [, argument, ...]);头文件位于:#include stdio.h>Params:char *str, size_t size, const char *format, ...
2015-09-23 20:21:36
2456
原创 proc_create实践(linux用户空间和内核空间交互之二)
1、proc_create实例static int mytest_flag = 0;//create flag variablestatic ssize_t mytest_proc_write(struct file *file,const char __user *buffer,size_t count,loff_t *pos){ char mode; if(count > 0)
2015-06-12 21:10:04
5133
原创 hrtimer、hrtimer_init()使用
1、内核用一个hrtimer结构来表示一个高精度定时器。 struct hrtimer { struct timerqueue_node node; ktime_t _softexpires; enum hrtimer_restart (*function)(struct hr
2015-06-02 17:55:13
6575
原创 Android Property介绍
1、属性(property)用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。属性系统是android的一个重要特性。它作为一个服务运行,管理系统配置和状态。所有这些配置和状态都是属性。每个属性是一个键值对(key/value map),其类型都是字符串。这些属性可能是有些资源的使用状态,进程的执行状态,系统的特有属性等。 在系统初始化时,Andro
2015-06-01 20:36:36
1583
原创 I2C 驱动编程接口i2c_master_send()、i2c_master_recv()和i2c_transfer()比较
参考文章:http://blog.youkuaiyun.com/zclongembedded/article/details/8255977一、数据包I2C_MSGNamestruct i2c_msg — an I2C transaction segment beginning with STARTstruct i2c_msg { __u16 add
2015-01-07 21:34:03
10881
原创 dup()和dup2()解析
头文件:unistd.hint dup(int oldfd)int dup2(int oldfd,int newfd)描述:返回值:示例:1:2:
2014-11-13 19:00:20
750
原创 I2C ext_flag解析
关于I2C 传输时,相关flag的说明i2c传输前需要对 client->ext_flag 做设定,或上相关标志,各个flag解释如下: ▪I2C_DMA_FLAG–开启DMA传输,default 为fifo mode传输▪I2C_WR_FLAG –Enable write and read tranfer mode, Must set I2C_RS_FLAG ,
2014-10-29 09:48:27
4503
原创 C和C++中,宏中的 ##、#和...讲解
C/C++#include #define JUDGE(num) if(para##num >0)#define MY_PK(info) printf(#info);int main(int argc,char *argv[]){ int para0 = 0; int para2 = 2; JUDGE(0) printf(
2014-08-16 17:58:24
698
原创 linux 如何添加右键terminal
安装后,可在右键里面 添加一个“打开终端”的菜单。Ubuntu系统: sudo apt-get install nautilus-open-terminalFedora系统:yum install nautilus-open-terminal
2014-08-04 10:36:39
1678
原创 Git pull 和Git fetch的区别
git pull:将下载(fetch)和合并(merge)放到一个命令里,把过程的细节都隐藏了起来。这样做的缺点是:
2014-04-30 21:25:56
621
原创 MTK平台添加Camera设备信息
#ifdef SLT_DEVINFO_CMM#include static struct devinfo_struct*s_DEVINFO_ccm; //suppose 10 max camerainfo#endif#ifdef SLT_DEVINFO_CMM s_DEVINFO_ccm =(struct devinfo_struct*)kmalloc(s
2014-04-21 22:13:54
1257
原创 C语言 union详解
一、定义一个联合类型的一般形式union 联合名{ 成员表};eg:union people{ int age; float weight; char *name;}在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,1)union 型数据所占的空间等于其最大的成员所占的空间;
2014-03-16 23:04:33
1613
原创 __user 修饰符详解
unsigned long copy_to_user(void __user *to, const void *from, unsigned long n){ might_sleep(); BUG_ON((long) n if (access_ok(VERIFY_WRITE, to, n)) n = __copy_
2013-08-05 14:11:24
1188
原创 __iomem解释
__iomem是linux2.6.9内核中加入的特性。是用来个表示指针是指向一个I/O的内存空间。主要是为了驱动程序的通用性考虑。由于不同的CPU体系结构对I/O空间的表示可能不同。当使用__iomem时,编译器会忽略对变量的检查(因为用的是void __iomem)。若要对它进行检查,当__iomem的指针和正常的指针混用时,就会发出一些警告。转载自 http://blog.csd
2013-04-08 14:41:18
998
原创 Struts2配置文件中package属性namespace能否省略的问题
在Myeclipse8.5中新建了一个测试项目,本来是想测试result-type chain的使用结果,结果就是报错:警告: Could not find action or resultNo result defined for action com.struts2.Action2 and result success仔细检查配置文件,
2012-10-10 09:45:47
1865
教学管理系统
2012-06-04
超市库存管理系统
2012-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人