- 博客(71)
- 资源 (12)
- 收藏
- 关注
原创 child_process实现多进程
12345678910111213141516varhttp = require('http'); functionfib (n) { if(n return1;
2015-01-05 03:14:46 2357
原创 CentOS 6.4下使用 ibus 五笔输入法
这里记一下配置步骤,免得下次重装系统的时候再摸索。步骤一:安装ibus五笔包?1sudo yum install ibus-table-wubi步骤二:配置?1ibus-setup在弹出的窗口界面
2014-12-30 03:17:32 2398
原创 JSon SuperObject 研究2:数据集与JSON对象互转
JSon SuperObject 研究2:数据集与JSON对象互转 JSON不能完全替代XML,但绝对是未来的大势所趋,其优点是简单、体积小、解析更快、解析占用资源更少。在delphi中,数据集是最常用数据存取方式。因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换。值得注意的是,这只是普通的TDataset与JSON之间转换,由于C
2014-12-30 00:17:30 1905
原创 全球最快的JS模板引擎
废话不多说,先上测试:亲测请访问:【在线测试地址】单次结果不一定准确,请多测几次。tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二名 artTemplate 也有一倍的差距。似乎每一个大公司都选择自己开发模板引擎并将其开源,结果就是社区充斥着数不清的引擎,让人眼花缭乱无从选择。随着时间的流逝,越来
2014-12-29 21:21:57 1844
转载 videobuf处理流程
videobuf是应用程序和v4l2驱动程序的一个中间层,用它来进行视频数据缓冲区的分配和管理。它根据应用程序的需求(缓冲区的数量的大小),分配相应的视频缓冲区,这个缓冲区是在内核空间分配的,并通过mmap方法映射到用户空间,在内核空间形成一个缓冲区队列,在应用程序中有相应的缓冲区数组对应,它们指向的内存地址是一样的。在驱动程序中,根据配置的硬件参数(FIFO阈值),将vip硬件图像存储器中的
2013-12-31 15:17:09 4570
转载 v4l2_dev.c浅析
[cpp] view plaincopyV4l2视频操作最核心的处理函数: [html] view plaincopy [cpp] view plaincopy#define VIDEO_NUM_DEVICES 256 //子设备数量 #define VIDEO_NAME "vi
2013-12-31 15:16:30 3633
转载 v4l2_common.c浅析
V4l2的子设备一般是摄像头和摄像头控制器,它们和主机的控制操作是通过i2c总线完成的。V4l2驱动框架中跟i2c相关的代码在deriver/media/video/v4l2_common.c中,下边就相关函数作一简单分析:下边宏的作用是如果v4l2的子设备通过i2c总线和主机通信时,才能用到下边的函数,因为有可能通过其他总线通信,比如SPI等。#if defined(CONFIG_I2C
2013-12-31 15:15:45 4317
转载 v4l2_device.c浅析
关于v4l2及v4l2_subdev设备实例的注册注消等操作在deriver/media/video/v4l2_device.c文件中,下边将各个函数分析一下(分析的时候以2.6.32.40内核为主,并列出与3.3.1的区别):注册一个v4l2设备实例,主要建立dev和v4l2_dev的关系(下边黄低红字)。初始化v4l2_dev,使dev_driver_data指向v4l2_dev,dev在
2013-12-31 15:15:10 3717
翻译 v4l2 video设备注册和调用过程
一、 注册一个video_device设备它代表系统/dev/videox设备节点的实际的物理设备。下边一内核版本2.6.32种成熟的omap2432处理器摄像头控制器模块驱动为例分析:下边的代码在driver/media/video/omap24xxcam.c中1、Video device的操作函数集[cpp] view plaincopystatic
2013-12-31 15:14:28 7116
翻译 v4l2驱动文档之——filed
video的帧可区分为隔行和逐行: 逐行顺序的传输一帧所有的行,而隔行则把一帧划分成两个fields,分别保存帧的奇数行和偶数行,被称作奇场和偶场. 阴极射线电视机需要交替的显示两场来组成一个完整的帧,交替的时延需要我们交替的传输奇场和偶场。这个奇怪技术的引入是因为:在刷新率接近电影时,图片会 消退的过快。使用奇偶场可以避免使用双倍的buffer以及额外的带宽需求。 首先要明确camer
2013-12-31 15:13:55 2029
翻译 v4l2驱动文档之——controls
v4l2驱动编写篇第七--控制方法 刚刚完成了这一系列文章的第六部分,我们现在知道如何设置视频设备,并来回传输帧了。然而,有一个众所周知的事实,那就是用户永远也不会满意,不会满足于能从摄像头上看到视频,他们马上就会问我可不可以调参数啊?像亮度、对比度等等。这些参数可以在视频应用中调整,有时也的确会这样做,但是当硬件支持时,在 硬件中进行调整有其优势。比如说亮度调整,如果不这样做的话,可能会丢失
2013-12-31 15:13:12 2007
翻译 v4l2驱动文档之——streaming IO
v4l2驱动编写篇第六B--流输入输出 在本系列文章的上一期中,我们讨论了如何通过read()和write()的方式实现视频帧的传输,这样的实现可以完成基本的工作,却并不是普便上用来实现视频输入输出大家偏爱的方法。为了实现最高性能和最好的信息传输,视频驱动应该支持V4L2 流输入输出。使用read()和write()方法,每一帧都要通过I/O操作在用户和内核空间之间拷贝数据。然而, 当使用
2013-12-31 15:12:11 2500
翻译 v4l2文档之——basic frame IO
一、v4l2驱动编写篇第六A--基本的帧输入输出 1、基本的帧输入输出关于视频驱动的这一系列文章己经更新了好几期,但是我们还没有传输过一帧的视频数据。虽然在这一点上,我们己经了解了足够多的关于格式协定方面的细节,我们可以看一下视频帧是如何在应用和设备之间传输的了。V4L2 API定义了三种不同的传输视频帧的方法,现在有两种是可以实现的:read() 和write() 系统调被用于普
2013-12-31 15:11:34 2243
翻译 v4l2文档之——format negotiation
V4l2驱动编写篇第五B--格式的协定这是不定期发布的关于写视频驱动程序的LWN系统文章的一篇续篇.介绍篇 包含了对整个系统的描述,并且包含对本篇的上一篇的链接,在上一集,我们关注了V4L2 API是如何描述视频格式的:图片的大小,和像素在其内部的表示方式。这篇文章将完成对这个问题的讨论,它将描述如就硬件所支持的实际视频格与应用达到协 议。1、 枚举硬件所支持的所有格式如我们在上一篇中
2013-12-31 15:10:58 2173
翻译 v4l2文档之——color and format
v4l2文档第五A--颜色与格式 颜色与格式这是不定期发布的关于写视频驱动程序的LWN系统文章的第五篇.没有看过介绍篇的,也许想从这里 开始。 应用在可以使视频设备工作之前,它必须与驱动达成了解,知道视频数据是何种格式的。这种协商将是一个非常复杂的过程,其原因有二:1、视频硬件所支持的视 频格互不相同。2、在内核的格式转换是令人难以接受的。所以应用在找出一种硬件支持的格式,并做出一种
2013-12-31 15:10:24 3671
翻译 v4l2文档之——input and output
v4l2驱动编写篇第四--输入输出1、输入和输出这是不定期发布的关于写视频驱动程序的LWN系统文章的第四篇.没有看过介绍篇的,也许想从这里开始。本周的文章介绍的是应用程序如何确定在特定适配器上哪些输入和输出可用,并且在它们之间做出选择。在很多情况下,视频适配器并不能提供很多的输入输出选项。比如说摄像头控制器,可能只是提供摄像头,而没什么别的功能。然而,在一些其他的情况下,事情将变得很复
2013-12-31 15:09:15 2926
翻译 v4l2文档之——basic ioctl
v4l2驱动编写篇三--基本I/O处理 如果有人在video for linux API规范上花了我时间的话,他肯定已经注意到了一个问题,那就是V4L2大量使用了ioctl接口。视频硬件有大量的可操作旋钮,可能比其它任何处理都要多。视频流要与许多参数相联系,而且有很大一部分处理要通过硬件进行。试图在硬件支持模式之外运行视频会导致性能很差,甚至根本任何性能。所以我们不得不揭露硬件的许多特性,结束
2013-12-31 15:08:39 2170
翻译 v4l2文档之——register and open
v4l2驱动编写篇二--注册和打开 这篇文章是LWN写V4L2接口的设备驱动系列文章的第二篇。没看过介绍篇的,也许可以从那篇开始看。这一期文章将关注Video for Linux驱动的总体结构和设备注册过程。开始之前,有必要提一点,那就是对于搞视频驱动的人来说,有两份资料是非常有价值的。•TheV4L2 API Specification . (V4L2 API说明)这份文档涵盖了
2013-12-31 15:07:40 2038
翻译 v4l2文档之——media framework
Linux kernel media framework============================ This document describes the Linux kernel media framework, its data structures,functions and their usage. Linux 内核多媒体驱动框架 这个文档描述linu
2013-12-31 15:06:47 2916
原创 vl4 linuxtv
http://linuxtv.org/downloads/v4l-dvb-apis/index.html好东西,记下来。
2013-12-31 15:04:20 3508
翻译 v4l2文档之——v4l2 framework
V4L2驱动框架概述=====================================这个文本文件讲述V4L2的框架所提供的各种结构以及它们之间的关系.1、简介------------由于硬件的复杂性v412驱动往往是非常复杂的: 大多数设备有多个IC,在/dev目录下有多个设备节点, 并也创建non-V4L2的设备,如DVB,ALSA,FB,I2C和input(I
2013-12-31 15:02:20 1486
转载 LINUX下查看设备信息的一些命令
查看CPU信息:cat /proc/cpuinfo查看内存信息:cat /proc/meminfo查看USB设备:cat /proc/bus/usb/devices查看键盘和鼠标:cat /proc/bus/input/devices查看各分区使用情况:df查看体系结构:busybox uname -a查看中断信息:cat /proc/interrupts
2013-08-12 10:00:26 1195
原创 LINUX下dup2的实现
这是一道UNIX环境高级编程的课后习题,要求不得使用fcntl,自己始终想不出效率比较高的写法,这里贴一下自己的做法,希望有大侠们能告诉我一种高效率的写法。#include "apue.h"#include "fcntl.h"int new_dup2(int oldfd, int newfd){ int fd_list[newfd] , i = 0, j = 0; printf("o
2012-10-22 17:15:18 764
转载 使用netlink机制在内核与应用程序之间通信
使用netlink机制在内核与应用程序之间通信前一段时间,在开发一个驱动程序的过程中,需要在驱动程序与应用程序之间进行通信。其中驱动程序在接收到一个硬件中断之后通知应用程序进行相应的处理。为 解决此类问题,驱动程序提供了几种机制:(1)使用copy_to_user/copy_from_user方法,缺点是通信响应时间过长(2)使用信 号,但是限于字符设备(3)使用netlink。在linu
2012-09-27 18:21:22 4664
原创 运用wpa_cli连接wifi
1: run wpa_supplicant firstuse the following command:wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant -c/data/misc/wifi/wpa_supplicant.conf2: Run the command line tool wpa_cli to
2012-04-06 15:54:35 3631
原创 android4.0 WIFI的启动流程和状态机变化
android中的wifi自从3.0开始就有了一些变化,一直没有时间做整理,趁着项目不太忙把整理的东西写一下当备份吧。 直接上图 图一是wifistatemachine的状态变化图,记录了从wifiservice创建开始到通过本地库文件wifi.c加载驱动、固件以及启动wpa_supplicant的过程。图二是系统启动后system_se
2012-03-01 16:43:27 6871 15
原创 如何让android4.0可以通过代理看流媒体
在android3.x时代,标题所说的问题是不存在的。但是到了4.0,不知道为什么android所有的arm版本系统都会默认走V8引擎使用chrome浏览器。这时候在测试cts时就发现如果使用代理上网(因为cts中的测项经常需要访问例如youtube这样的外网,需要翻墙才能浏览)是无法播放youtube视频的,除开某些视频是因为格式的问题确实无法播放之外,android4.0自身设计的缺陷占了很大
2012-02-28 15:29:39 3334
转载 非常详细的android wifi工作流程
在网上看到一篇非常详细的WIFI工作流程,特在这里分享。http://blog.csdn.net/sshhbb/article/details/6817272
2012-02-14 14:10:03 2191
转载 ANDROID音频系统散记之四:4.0音频系统HAL初探
一、代码模块位置1、AudioFlinger[plain] view plaincopyframeworks/base/services/audioflinger/ +-- Android.mk +-- AudioBufferProvider.h +-- AudioFlinger.cpp +-- AudioFlinger.h +--
2012-01-13 18:02:33 3649
转载 ANDROID音频系统散记之三:resample-2
这篇是承接上一篇提到的底层resample处理,以Samsung的mini alsa-lib为例说明。mini alsa-lib这个mini alsa-lib位于android2.3.1-gingerbread/device/samsung/crespo/libaudio中。如之前所说alsa-lib实现了太多plugin的功能,显得复杂臃肿。因此我建议如果想了解alsa在上层调用
2012-01-13 18:01:35 2776
转载 ANDROID音频系统散记之二:resample-1
Android上的resample处理默认的情况下,Android放音的采样率固定为44.1khz,录音的采样率固定为8khz,因此底层的音频设备驱动只需设置好这两个固定的采样率。如果上层传过来的采样率与其不符的话,则Android Framework层会对音频流做resample(重采样)处理。Resample的大致流程如下: AudioResample作为最基本的类
2012-01-13 18:00:51 10712
转载 ANDROID音频系统散记之一:A2dpAudioInterface
写在之前本来有打算写写Android音频系统的,但是仔细研究了如下链接的三篇文章,果断中断了我的想法。毫不夸张来说,这是我看过的最好的阐述Android音频系统的文章了,简练精辟,将音频系统各个方面的重要的脉络都描述出来了。有这三篇文章,理解Android音频系统何止加快了10倍。Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
2012-01-13 17:59:47 2347
转载 android下的蓝牙A2DP
摘 要:蓝牙(Bluetooth)技术是一种低成本的无线数据与数字通信的开放性全球规范。 Android 是Google 于2007 年11 月5 日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。本文通过研究蓝牙无线通信协议栈,在Android 手机平台上设计并实现了蓝牙立体声耳机收听高保真
2012-01-12 12:00:28 7731 1
转载 iptables的应用
iptables的应用 摘要:本文介绍linux2.4.x内核中的防火墙工具--iptables的原理与配置,同时还给出了实际运用的例子,在文章的最后归纳了iptables与ipchains的区别。一、 概述从1.1内核开始,linu
2011-10-13 14:01:52 1612
原创 android WIFI DRIVER 开发日记(三)
WIFI已经可以工作了,大部分android wifisetting里要求的功能也都实现了,不过还有两个问题在这里记录一下:1. Softap无法使用2. 通过WPS联网的时候有一定几率会失败。 对于softap,当在setting中选下WIFI TET
2011-09-27 10:35:25 4347 3
转载 wifi ioctl
WIFI ioctl中SIOCSIWSCAN命令从应用程序到内核再到驱动应用程序中:ioctl(skfd, SIOCSIWSCAN , &wrq); 其中,#define SIOCSIWSCAN 0x8B18socket的ioctl先看net/socket.c的s
2011-09-21 21:03:48 3692 1
转载 wpa_supplicant软件架构分析
1. 启动命令wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.
2011-09-15 13:46:11 2394
转载 面对不断升级的内核,如何学习linux设备驱动
面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库,很多linux应用程序开发人员和linux设备驱动开发人员即兴奋,又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能,烦躁的是适应新软件的特性、搭建新环境是一项非常繁琐的事情。本文想从以下3个方面探
2011-08-15 16:36:35 1265
转载 platform device和platform driver
从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。Li
2011-08-10 14:29:43 1529
转载 回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调函
2011-08-04 10:20:51 1968
LINUX 设备驱动开发详解 源码
2010-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人