2013年4月11日
摘要: 刚刚接触内核,在调试过程中用printk打印信息当然是直接有效的办法,但当我们不知到一个函数或者一个模块到底在哪里出了问题时我们可以利用dump_stack有效的找到问题的根源,下面只是简单的给出了使用方法。 我在自己的主机上试了一下dump_stack() Makefile文件 点击(此处)折叠或打开obj-m := hello.oKERNELBUILD :=/lib/modules/$(shell uname -r)/builddefault: make -C $(KERNELBUILD) M=$(shell pwd) modules clean: rm -rf *.o ... 阅读全文
posted @ 2013-04-11 17:19 simon_god 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: soc-camera的作者之所以引入这个子系统,我想一个主要目的就是把camera驱动划分为camera host端,camera device端,这样同一个camera sensor驱动就可以方便的移植到多个camera host下,而无须做较多的改动。本译文取自kernel文档:Documentation/video4linux/soc-camera.txt术语在阅读本文档前先明确几个术语:camera / camera device / camera sensor - 是一个video-camera sensor chip,可以连接到各种系统和接口,典型的使用i2c来控制和配置设备,使用 阅读全文
posted @ 2013-04-11 17:18 simon_god 阅读(793) 评论(0) 推荐(0) 编辑
摘要: soc_camera.c[cpp] view plaincopy1455staticstructplatform_driver__refdatasoc_camera_pdrv={1456.remove=__devexit_p(soc_camera_pdrv_remove),1457.driver={1458.name="soc-camera-pdrv",1459.owner=THIS_MODULE,1460},1461};14621463staticint__initsoc_camera_init(void)1464{1465intret=bus_register(& 阅读全文
posted @ 2013-04-11 14:08 simon_god 阅读(1592) 评论(0) 推荐(0) 编辑
  2013年4月10日
摘要: link 这个链接指向本文的源代码link 这个链接指向 v4l2 标准文档,文档中包含sample code。这份文档的标题是"Video for Linux Two API Specification",如果链接失效可以用这个标题重新google。isp camera 驱动分为 sensor 驱动和 isp controller 驱动两部分,其中sensor 驱动就是摄像头芯片的驱动。isp controller 驱动实现的是 v4l2 驱动架构中 soc_camera_host 接口,主要负责 isp dma 的管理和一些 v4l2 的标准操作。1. soc_came 阅读全文
posted @ 2013-04-10 22:37 simon_god 阅读(3263) 评论(0) 推荐(0) 编辑
摘要: V4L2的是V4L的第二个版本。原来的V4L被引入到Linux内核2.1.x的开发周期后期。 Video4Linux2修正了一些设计缺陷,并开始出现在2.5.X内核。 Video4Linux2驱动程序包括Video4Linux1应用的兼容模式,但实际上,支持是不完整的,并建议V4L2的设备使用V4L2的模式。要想了解 V4l2 有几个重要的文档是必须要读的, Documentation/video4linux目录下的V4L2-framework.txt和videobuf、V4L2的官方API文档V4L2 API Specification , drivers/media/video目录下的vi 阅读全文
posted @ 2013-04-10 22:32 simon_god 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 之前在 Android Camera 的执行流程http://blog.chinaunix.net/uid-26765074-id-3499537.html 这篇文章中已经详细介绍了 Android Camera app到调用open打开camera 设备的完成过程,但是只是到此为止,并未对较底层的操作控制等做任何分析, 今天就要进入这个环节了 这里就直接从open那个方法开始了,先说一下这个open是怎么被调用的实例化Camera Hal接口 hardware,hardware调用initialize()进入HAL层打开Camear驱动。 CameraHardwareInterface中i. 阅读全文
posted @ 2013-04-10 22:30 simon_god 阅读(2008) 评论(0) 推荐(0) 编辑
摘要: 一 首先既然Camera是利用binder通信,它肯定要将它的service注册到ServiceManager里面,以备后续Client引用,那么这一步是在哪里进行的呢?细心的人会发现,在frameworks\base\media\mediaserver\Main_MediaServer.cpp下有个main函数,可以用来注册媒体服务。没错就是在这里,CameraService完成了服务的注册,相关代码如下:int main(int argc, char** argv) { sp<ProcessState> proc(ProcessState::self()); sp<ISe 阅读全文
posted @ 2013-04-10 22:29 simon_god 阅读(1394) 评论(0) 推荐(0) 编辑
  2013年4月9日
摘要: sudo apt-get install stardict stardict-gaojihanyudacidian_fix-2.4.2.tar.bz2 高级汉语词典stardict-kdic-computer-gb-2.4.2.tar.bz2 计算机词汇stardict-langdao-ce-gb-2.4.2.tar.bz2 朗道汉英词典4in1stardict-xdict-ce-gb-2.4.2.tar.bz2 xdict汉英词典stardict-xdict-ec-gb-2.4.2.tar.bz2 xidct英汉词典stardict-oxford-gb-formated-2.4.2.... 阅读全文
posted @ 2013-04-09 21:59 simon_god 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 主要参考一下文章配置。==================http://blog.csdn.net/siceaner/archive/2011/01/08/6123923.aspx注:以下所有说明针对 ubuntu10.04 平台。1. vimrc 基本配置1.1. 配置文件的位置在目录 /etc/ 下面,有个名为vimrc 的文件,这是系统中公共的vim 配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” 。例如,/root 目录下,通常已经存在一个.vimrc 文件。 1.2. 设置语法高亮显示(1 )打开vimrc ,添加以下语句来 阅读全文
posted @ 2013-04-09 21:58 simon_god 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传 送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I 2C总线上的仲裁。I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。1 SCL线的同步(时钟同步)SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号时 阅读全文
posted @ 2013-04-09 21:57 simon_god 阅读(6430) 评论(0) 推荐(1) 编辑