2015年11月23日
摘要: 缺省配置下,用 Ubuntu 的文本编辑器(Gedit)打开GB18030(繁体中文用户请将这里的出现的GB18030替换成BIG5或BIG5-HKSCS)类型的中文编码文本文件时,将会出现乱码。出现这种情况的原因是,Gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表... 阅读全文
posted @ 2015-11-23 09:54 simon_god 阅读(219) 评论(0) 推荐(0) 编辑
  2013年8月30日
摘要: 历史的痕迹:在最新的linux-2.6.31/arch/arm/文件夹下,仍然保留Linux最初向ARM处理器移植的痕迹,最初的移植由黑客完成,在老的移植的代码文件的头部保留着黑客的名字;最初的ARM也不像现在这样的先进,都是StrongARM、ARM7之类,具体文件夹如mach-sa1100、mach-shark、mach-rpc等。现在就ARM来说已不是StrongARM、ARM7的时代,但勿忘历史,让我们记住那些把Linux移植到ARM的大牛们,记住哪个开拓的年代。 夫妻的利益:当NOKIA的手机在世界流行时,和那句名言”成功的男人背后有一个女人,或者是成功的女人背后有一个男人“一样,N 阅读全文
posted @ 2013-08-30 16:54 simon_god 阅读(3497) 评论(0) 推荐(0) 编辑
摘要: 在内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数, "if (unlikely(order >= MAX_ORDER)) return NULL;"), page的大小一般是4K bytes, MAX_ORDER缺省定义为11, 所以如果不修改内核, kmalloc能够分配的最大连续内存一般是4M bytes.内核中获取4M以上大内存的方法有三种:1.修改MAX_ORDER, 重新编译内核2.内核启动选型传递"mem="参数, 如"mem=80M", 阅读全文
posted @ 2013-08-30 16:51 simon_god 阅读(1284) 评论(0) 推荐(0) 编辑
  2013年8月7日
摘要: 通常情况下我们只能获取当前Activity的画面坐标,那有时候我们需要做到一种类似于c++ hook的后台运行程序能够监听到前台用户的操作并记录下来,往往这类程序都是为自动化测试服务的。Android系统 getevent 方法:getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等大家可以先通过 getevent -p 命令查看当前哪个设备是Touchscreen,我们通过监听Touchscreen设备的输出可以得到相应的x,y坐标值。getevent /dev/input/event1 -- 监听event1找到您的屏幕设备中0035和0036的含义,我的手机中可以看到x的值.. 阅读全文
posted @ 2013-08-07 18:04 simon_god 阅读(1049) 评论(0) 推荐(0) 编辑
  2013年5月16日
摘要: 用户层:poll()函数通过检验一组文件描述符来检测是否有特定的时间将在上面发生并在一定的时间内等待其发生。poll()接受一个指向结构"structpollfd"列表的指针,其中包括了你想测试的文件描述符和事件。事件由一个在结构中事件域的比特掩码确定。当前的结构在调用后将被填写并在事件发生后返回。当等待时间为0时,poll()函数立即返回,-1则使poll()一直挂起直到一个指定事件发生。下面是pollfd的结构。structpollfd{intfd;/*文件描述符*/shortevents;/*等待的事件*/shortrevents;/*实际发生了的事件*/};当返回正 阅读全文
posted @ 2013-05-16 13:45 simon_god 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 内核层:主要数据结构:structpoll_table_entry{structfilefilp;wait_queue_twait;//内部有一个指针指向一个进程wait_queue_head_twait_address;//等待队列头部(等待队列有多个//wait_queue_t组成,通过双链表连接)};structpoll_table_page{structpoll_table_pagenext;structpoll_table_entryentry;structpoll_table_entryentries[0];};structpoll_wqueues{poll_tablept;//一 阅读全文
posted @ 2013-05-16 13:44 simon_god 阅读(784) 评论(0) 推荐(0) 编辑
  2013年4月15日
摘要: v4l2 操作实际上就是 open() 设备, close() 设备,以及中间过程的 ioctl() 操作。对于 ioctl 的调用,要注意对 errno 的判断,如果调用被其他信号中断,即 errno 等于 EINTR 的时候,要重新调用。Video capture device 的实际功能就是采集视频信号,并将数字化的图像保存在 memory 中,现在几乎上所有的相关设备都能采集 25/30 帧 /s 。在下面的讨论中,我只列举出一些和 camera 密切相关的一些属性和方法。1 、 open_device打开设备一般都是使用 open() 打开 /dev 下的 video 设备文件 ,比 阅读全文
posted @ 2013-04-15 16:21 simon_god 阅读(6633) 评论(0) 推荐(0) 编辑
  2013年4月12日
该文被密码保护。 阅读全文
posted @ 2013-04-12 13:39 simon_god 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 分host,sensor层次的驱动,soc-camera为枢纽,同时也是和用户交互的接口;soc_camera_probe这个函数什么调用的呢?先利用ret = driver_register(&ic_drv);//这里现在soc_camera_bus_type总线下注册一个驱动device_driver。而在soc_camera_host_register--->scan_add_host-->device_register(&icd->dev);//这里开始在soc_camera_bus_type 总线上注册设备, // 这个时候soc_camera_pr 阅读全文
posted @ 2013-04-12 13:33 simon_god 阅读(344) 评论(0) 推荐(0) 编辑
  2013年4月11日
摘要: 驱动的结构------------------------------------------------------1)一个为设备实例定义的,并且包含设备状态信息的结构;2)一种初始化和命令子设备(sub-devices)的方式;3)创建V4L2设备节点(/dev/videoX, /dev/vbiX, /dev/radioX and /dev/vtxX) 并且 keeping track of device-node specific data.4)Filehandle-specific structs containing per-filehandle data;5)视频buffer处理; 阅读全文
posted @ 2013-04-11 17:20 simon_god 阅读(1897) 评论(0) 推荐(0) 编辑