- 博客(256)
- 资源 (5)
- 收藏
- 关注
转载 驱动注册的probe函数
probe的调用 从driver_register看起:int driver_register(struct device_driver * drv){ klist_init(&drv->klist_devices, klist_devices_get, klist_devices_put); init_completion(&drv->unlo
2013-12-31 19:39:29 670
转载 new style I2C设备驱动分析
最近看了韦东山驱动视频的i2c部分,总结出相关知识,分享给大家 在内核中有两种方式的i2c设备驱动的编写方法,一种legacy方式,一种是newstyle方式。韦东山视频和宋宝华书籍里讲解的都是legacy方式,但是在新版本内核中,legacy方式的i2c设备驱动已经编译不过去了,因为几个主要的内核函数都已经不存在了,即内核不再支持legacy方式的i2c设备驱动。下
2013-12-31 19:38:40 756
原创 i2c sub system __i2c_board_list/klist_devices/klist_drivers 相互关系
kernel/drivers/i2c/i2c-boardinfo.cstruct i2c_client 中的name/addr/irq 等信息是从 struct i2c_board_info得来的,关于如何得到见下文。所有的i2c_board_info 都要添加到全局链表 __i2c_board_list 中,而且应该在硬件i2c控制器模块加载前添加,以便控制器模块加载时生成 i2c_cl
2013-12-31 16:52:25 2023
转载 Install Notepad++ on Ubuntu
1、去掉红色下划线:插件->Dspellcheck->Settings->Advanced->Underline Style:Hidden2、更换背景和前景色:设置->色彩样式 背景色:R:250 G:243 B:225 使用全局背景色Notepad++ is my favorite text editor , Notepad … you name it. And when I
2013-12-30 14:51:49 6723
转载 How to install Adobe Reader on Ubuntu
Ubuntu has a PDF reader which is suitable for almost all PDFs (i.e. any of them that are printable).However, occasionally it fails to properly handle interactive or extremely complex PDFs. For tha
2013-12-19 14:35:07 1103
转载 Git中的fetch和pull
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/master 以上命令的含义: 首先从远程的origin的master主
2013-12-17 16:09:25 1481
转载 Git push/pull/cherry-pick/merge/rebase
1、git push origin gpio_keys_motor:master // 提交本地gpio_keys_motor分支到远程的master分支出错,提示有的ref无法提交。原因是本地的master分支,和remote上的master有冲突,应该更行到最新的remote master。问题一:本地分支不是最新的,和remote有冲突,需要更新问题二:git p
2013-12-17 16:07:52 2929
转载 Linux hrtimer分析(2)
本文介绍Linux2.6.29中,配置高精度模式的hrtimer与未配置高精度模式时行为的区别。本文暂不考虑高精度模式对Linux系统时钟中断的影响。 在没有配置高精度模式时,hrtimer的超时在系统时钟中断的轮循中检查,所以此时hrtimer的定时精度还是以轮循的间隔为单位,精度与传统的时间轮定时器一样。在配置高精度模式后,hrtimer的超时由struct clo
2013-12-17 14:00:56 883
转载 Linux hrtimer分析(一)
本文分析了Linux2.6.29中hrtimer的实现。 Linux2.6中实现了一种新的定时器hrtimer。与传统定时器使用时间轮算法不同,hrtimer使用了红黑树算法。hrtimer本身可以配置成高精度和普通精度两种,在单CPU系统和多CPU系统中的实现也有区别。这里先分析最简单的配置成普通精度、单CPU的情况。配置成高精度的情况见后续文章。1. 时钟源的定
2013-12-17 14:00:17 1147
转载 Alarm(硬件时钟) init
Alarm就是一个硬件时钟,前面我们已经知道它提供了一个定时器,用于把设备从睡眠状态唤醒,同时它也提供了一个在设备睡眠时仍然会运行的时钟基准。在应用层上,有关时间的应用都需要Alarm的支持,源代码位于“drivers/rtc/alarm.c”。 Alarm的设备名为“/dev/alarm”。该设备的实现非常简单,我们首先打开源码,可以看到include,其中定义了一些Alarm的相关信
2013-12-13 14:54:48 6156
转载 android alarm类型
enum android_alarm_type { ANDROID_ALARM_RTC_WAKEUP, ANDROID_ALARM_RTC, ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP, ANDROID_ALARM_ELAPSED_REALTIME, ANDROID_ALARM_SYSTEMTIME,
2013-12-13 13:50:55 2882
转载 linux软中断的实现
start_kernel()-->softirq_init()do_softirq() -->softirq_vec[i] 系统全局数组tasklet_action()-->tasklet_vec[cpui] 每个cpu分配一个tasklet_vec元素tasklet_hi_action()-->tasklet_hi_vec[cpui] 每个cpu分配一个t
2013-12-07 16:13:23 1027
转载 slickedit and cdt
到官网 http://www.slickedit.com/trial/slickedit 下载原版安装文件se_16000300_linux32.tar.gz第一步:解压缩se_16000300_linux32.tar.gz,并进入压缩后的文件夹.第二步:进入解压的目录,运行安装程序vsinst。这里要加上sudo,增加读写访问权限:sudo ./vsinst第三步:会
2013-11-22 16:06:38 1759
转载 中断处理程序中的关中断函数disable_irq和disable_irq_nosync
可能会有多个同一中断线的中断等待处理,使用disable_irq在此中断线的中断处理例程中关闭此中断线,disable_irq会等待尚未处理完的中断申请处理完,如果中断例程中占用了资源,则会死锁。disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 那么在中断处理程序中应该使用哪一个函数来关闭中断呢?在中的按键驱动中, 使
2013-11-20 17:06:15 2733
转载 linux中class_create和class_register说明
本文介绍linux中class_create和class_register的相关使用方法1 class结构体介绍 内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…
2013-11-18 11:15:05 21695 2
转载 Linux设备驱动的class(类)的理解(以timed_output为基础)
一、 前言前天写了关于安卓震动系统的驱动开发全过程,其中用到了timed_output这个驱动模型,那天只是简单的用了一下,今天拿出来彻底的研究一下,分享一下我的理解。在使用这个驱动模型的时候,我一直都很奇怪,它的名字看上去和时间有很大的关系,在我的心里我也以为它会提供一些与时间操作相关的函数,帮助开发人员简单的完成与时间相关的操作,但是翻遍了它的实现代码都没有发现它与时间的半毛钱关
2013-11-18 10:43:20 3770
转载 Android震动vibrator系统开发全过程
一、前言本人刚学习安卓驱动开发,水平不能说菜,是根本没有水平,在这里把学习过程贴出来,跟大家一起学习交流,还望大家多多指正,转载的请标明出处。二、android驱动介绍安卓总体架构是在 Linux内核基础上,增加硬件抽象层(HAL),运行库,java虚拟机,程序框架等组成的,具体如下图。 安卓的应用程序是从applicat
2013-11-18 10:36:58 12574 3
转载 c 函数fopen,fwrite,fread
C 语言函数 fopen功能:打开一个文件函数原型:FILE *fopen(const char *path,const char *mode);所需库: 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。参数说明:参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则
2013-11-01 20:08:31 898
转载 YUV420--》rgb
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。以dm642的H263loopback例子程序为例,发送线程中,视频捕获后我们得到YUV422 planar数据,然后转化成YUV420 planar数据,再
2013-11-01 20:07:56 1732
转载 图文详解YUV420数据格式
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chro
2013-11-01 20:04:58 1004
转载 Git 常用命令
Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。 本来想着只把最有用、最常用的 Git 命令记下来,但是总觉得这个也挺有用、那个也用得着,结果越记越多。
2013-11-01 15:32:31 12779
转载 camera 测光模式 和 实际应用
大多数的数码相机或传统傻瓜相机,大多数都具备这几种测光方式:中央平均测光、中央局部测光、点测光、多点测光以及评价测光。这几种测光方式基本可以应付目前所有的拍摄,但是在影楼以及一些专业场合或者广告拍摄,摄影师依旧依赖测光表的数值来进行拍摄。中央重点平均测光(或简称:中央平均测光)中央平均测光是采用最多的一种测光模式,几乎所有的相机生产厂商都将中央平均测光作为相机默认的测光方式
2013-10-31 09:26:16 4903
转载 曝光的原理 自动曝光
曝光曝光由快门与光圈的相互关系确定,将决定照片的亮度。曝光是决定照片最终效果的关键因素,应熟练牢固掌握。曝光的基础 曝光是由光圈和快门速度决定的光量 就像前面说过的一样,所谓的曝光是用于表示照片整体亮度的术语。照片的亮度由图像感应器所接收到的光的总量决定,而光圈和快门就起到了调整光量的“调节阀” 的作用。快门采用速度表示,相当于光线之门打开的时间。而光圈则表示门打开的大小。
2013-10-30 17:02:57 13844
转载 camera 高动态范围(High-Dynamic Range,简称HDR)
高动态范围图像(High-Dynamic Range,简称HDR),相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Range)图像,利用每个曝光时间相对应最佳细节的LDR图像来合成合成最终HDR图像[1],能够更好的反映人真实环境中的视觉效果。HDRI是High-Dynamic Range (HDR)image的缩写,也就是高动态
2013-10-30 16:10:28 11879
转载 yuv420p转bmp图片
其实就是yuv420p转换为rgb后,加上文件头,存到后缀名为.bmp的文件中就可了。最近做一个视频采集,为了调试,先截了图片出来,涉及到图片的转换。调试过程花了一定的时间,现把源代码奉上,供大家参考#include stdio.h>#include stdlib.h>#include unistd.h>#include linux/vide
2013-10-29 20:11:10 5135
转载 YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
static void cvt_420p_to_rgb565(int width, int height, const unsigned char *src, unsigned short *dst){ int line, col, linewidth; int y, u, v, yy, vr, ug, vg, ub; int r, g, b; const unsign
2013-10-29 20:04:44 2468
转载 YUV420SP to YUV420P
最近做TI DM365的solution, 发现出来的画面有抖动,于是就想抓RAW data出来看看是sensor有问题还是encode出了问题http://www.rosoo.net/a/201006/9752.html
2013-10-29 20:02:27 1190
转载 调试过程中尚未研究的问题,先记录下,以后解决
1、pm runtime http://blog.csdn.net/jk198310/article/details/89715142、platform_get_resource request_mem_region ioremap platform_get_irq
2013-10-21 10:19:25 594
转载 s5pv210 camera驱动分析
http://wenku.baidu.com/view/72d7b27c31b765ce050814ce.html
2013-10-15 00:09:52 1022
转载 YUV格式说明 YUYV JPEG
YUV420P,Y,U,V三个分量都是平面格式,分为I420和YV12。I420格式和YV12格式的不同处在U平面和V平面的位置不同。在I420格式中,U平面紧跟在Y平面之后,然后才是V平面(即:YUV);但YV12则是相反(即:YVU)。YUV420SP, Y分量平面格式,UV打包格式, 即NV12。 NV12与NV21类似,U 和 V 交错排列,不同在于UV顺序。I420: Y
2013-10-14 17:06:22 20911
转载 Android Camera Preview ANativeWindow的处理
从JNI的调用看,Java通过surfacetexture来显示preview。CameraService通过surfacetexture获取ANativeWindow,向OpenGL传递数据。ANativeWindow的函数实现是在CameraHardwareInterface.h中, struct camera_preview_window { struc
2013-10-11 08:57:28 6857
转载 三星摄像头调试
Android S5PV210 创建的video设备http://blog.csdn.net/kickxxx/article/details/7743061android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)http://blog.csdn.net/xubin341719/article/details/7727041
2013-09-24 23:53:01 1430
转载 android4.0 camera hal 移植
http://blog.csdn.net/qq69696698/article/details/7174129转自:http://blog.csdn.net/muojie/article/details/6988297先从Camera Hal提供给Camera Service 的接口(CameraHardwareInterface.h)开始看起。从注释可以看出,基本的流
2013-09-17 23:44:17 1129
转载 Android Camera porting(HAL层移植)
http://blog.csdn.net/kimihong/article/details/7059413这篇文章来自kandroid,在android源码中Development/pdk/下也能找到,最近在做android camera 模块实现,正好看到这篇,虽然写的比较简洁,大部分还是挺有用,所以记在这里交流参考。Android 相机简要:编译libcamer
2013-09-17 23:43:37 2716 1
转载 android中各种img文件的作用以及系统启动过程
首先通过编译,先将android内核编译成功。正常情况下,在目录out/target.product/generic/(但是有的就没有generic文件,如freescale和iriver;但是lonshinetech下面就有这个文件,依据情况而定,只要能找到生成的三个文件就可以。例如:~/freescale/R9.2/out/target/product/imx51_bbg$ )下会生成三个文件
2013-09-17 22:35:47 1097
转载 Linux kernel Low Level debug
如果你运气不太好,那么第一次启动kernel,最多看见uncompressing linux...ok, booting the kernel从串口ttyS0出来,然后你什么都没了。这总情况遇见的机会还是很多的。多数原因是内核卡住了。你可能会问,内核卡住了不要紧呀,至少没卡住的代码中的printk应该可以出来。你这样想,那就是你还没有读过printk的代码。在串口驱动初始话
2013-09-17 22:28:17 2073
转载 android 4.2.2 搭建编译环境 JDK
GCC/G++应该使用4.6.3以下的版本,jdk6.0-------------------------安装jdk-------------------------接下来就是安装jdk了,在此提醒一下,因为系统自带有openjdk,所以当在终端中输入java -version命令的时候,会有一些提示的,这个不要担心,没什么影响,我们要自己手动配置自己的jdk,好了,先说这
2013-09-16 21:43:09 5984
转载 让 Terminal/vim 使用 Solarized 配色
在终端里边启动vim,终端的配色会影响vim的配色;vim的配色是叠加到终端的颜色上的,所以很多时候对vim的配色都和设想的不一样。在线配色网址:http://bytefluent.com/devify/,配置完成后,可以下载配置文件。1.先改终端的配色为Solarized现在基本用 ubuntu 做开发,直接在终端(gnome-terminal)里面 vim,
2013-09-14 21:16:52 51147 1
转载 Linux下节能中断
Linux下节能中断唤醒在linux系统进入节能,如进入mem之后,可以通过中断唤醒系统。选择在节能模式下,是否支持该中断唤醒系统是本文要讲的内容。例如,在触摸屏的suspend方法中,调用enable_irq_wake,则设置支持触摸屏中断唤醒系统休眠,在resume方法中,调用disable_irq_wake关闭支持。enable_irq_wake就该函数而言,可以从两方面思考
2013-09-12 14:54:08 1191
转载 input event types code
type: /* * Event types功能实现 */#define EV_SYN0x00 // 表示设备支持所有的事件#define EV_KEY 0x01 // 键盘或者按键,表示一个键码#define EV_REL 0x02 // 鼠标设备,表示一个相对的光标位置结果(相对坐标)#define EV_ABS 0x03 // 手写板产生的
2013-09-11 11:03:24 987
slickedit v18 18.0.1.2 序列号 破解
2013-11-26
slickedit 2013 v18 win linux mac
2013-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人