Linux
文章平均质量分 91
hedtao
这个作者很懒,什么都没留下…
展开
-
基于Linux ALSA音频驱动的wav文件解析及播放程序
本设计思路:先打开一个普通wav音频文件,从定义的文件头前面的44个字节中,取出文件头的定义消息,置于一个文件头的结构体中。然后打开alsa音频驱动,从文件头结构体取出采样精度,声道数,采样频率三个重要参数,利用alsa音频驱动的API设置好参数,最后打开wav文件。定位到数据区,把音频数据依次写到音频驱动中去,开始播放,当写入完成后,退出写入的循环。 注意:本设计需要alsa转载 2013-10-24 11:07:19 · 787 阅读 · 1 评论 -
Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理,例如音量控转载 2013-07-01 14:25:03 · 633 阅读 · 1 评论 -
Linux ALSA声卡驱动之六:ASoC架构中的Machine
前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结转载 2013-07-01 14:24:06 · 920 阅读 · 0 评论 -
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin转载 2013-07-01 14:22:58 · 433 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
本内容均由http://blog.csdn.net/droidphone原创Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。转载 2013-07-01 14:11:13 · 588 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
本内容均由http://blog.csdn.net/droidphone原创1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值转载 2013-07-01 14:08:11 · 573 阅读 · 0 评论 -
Linux ALSA声卡驱动之二:声卡的创建
本内容均由http://blog.csdn.net/droidphone原创1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为转载 2013-07-01 14:03:27 · 586 阅读 · 0 评论 -
Linux ALSA声卡驱动之一:ALSA架构简介
本内容均由http://blog.csdn.net/droidphone原创一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层转载 2013-07-01 13:59:37 · 581 阅读 · 0 评论 -
container_of 用法解析
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the转载 2013-05-11 17:15:17 · 445 阅读 · 0 评论 -
Linux I2C驱动分析 S3C6410
转自:http://www.linuxidc.com/Linux/2011-08/39948p1.htmLinux中I2C体系结构如下图所示(图片来源于网络)。图中用分割线分成了三个层次:用户空间(也就是应用程序),内核(也就是驱动部分)和硬件(也就是实际物理设备,这里就是6410中的i2c控制器和at24xx)。这个够清晰了吧?我们主要研究的是中间那一层。中间一层又分为i2c转载 2013-05-11 21:29:45 · 1110 阅读 · 0 评论 -
Linux I2C驱动源码分析(二)
转自 http://www.cnblogs.com/nick123/archive/2010/09/06/1819037.html下面开始分析linux/drivers/i2c/busses/i2c-s3c2410.c,在设备与驱动匹配成功后,会执行s3c24xx_i2c_probe()函数,此处传给s3c_i2c_probe 的参数就是 我们注册的i2c 平台设备 s3c_device_转载 2013-05-08 14:20:34 · 579 阅读 · 0 评论 -
实例解析linux内核I2C体系结构(1)
转载:http://blog.csdn.net/hongtao_liu/article/details/4964244一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有: ●转载 2013-05-09 10:50:45 · 559 阅读 · 0 评论 -
实例解析linux内核I2C体系结构(2)
转自 :http://blog.csdn.net/hongtao_liu/article/details/5260739四、在内核里写i2c设备驱动的两种方式前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapte转载 2013-05-09 10:52:30 · 419 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_plat转载 2013-07-01 14:25:44 · 890 阅读 · 1 评论 -
ALSA的理解
以mini210-wm8960参考,学习alsa驱动相关注册及流程笔记记录如下,部分内容参考linux audio(alsa) 驱动注册的简明流程.大体结构: cpu_dai-------指的是I2C通路.codec_dai-----codec的功能,如录音放音参数。codec_dev-----解码设备,重点platform------据我看只是做了pcm的操作原创 2013-07-18 14:38:04 · 1319 阅读 · 0 评论 -
驱动相关问题
有转载有摘抄驱动笔记FIQ和IRQ区别 向量中断控制器VIC具有32个中断请求输入,可将其编程分为3类,FIQ,向量IRQ和非向量IRQ。FIQ快速中断请求要求具有最高优先级。如果分配给FIQ的请求多于一个,VIC将中断请求相或后向ARM处理器产生FIQ信号。当只有一个中断被分配为FIQ时可实现最短的FIQ等待,但如果分配给FIQ级的中断多于1个,FIQ服务程序需要读取F原创 2013-09-08 20:46:01 · 1436 阅读 · 0 评论 -
僵尸进程和孤儿进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有转载 2013-09-25 21:33:56 · 578 阅读 · 0 评论 -
C语言的内存布局问题
1 。 每次都会遇到这个问题,一直是看了又忘,忘了又看。本文主要简介一下c中的内存类型和布局问题。 2。内存的类型 (1)栈区(stack):由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。 在函数参数和地址入栈情况中,一般是从左向右将变量入栈,最后函数的地址入栈。 (2)堆区(hea转载 2013-09-22 16:35:04 · 642 阅读 · 0 评论 -
FIMD架构分析
转自:http://www.embedu.org/Column/Column431.htmFIMD架构分析作者:邹南,华清远见嵌入式学院讲师。一、名称含义(FIMC& FIMD)FIMC : Fully Interactive Mobile Camera (完全交互式移动摄像机) FIMD:转载 2013-09-11 14:40:47 · 903 阅读 · 0 评论 -
LCD驱动分析(三): framebuffer驱动的注册
原文地址:LCD驱动分析(三): framebuffer驱动的注册 作者:huabinbin00这里最好牵涉到几个文件S3cfb.c、S3cfb_fimd6x.c setuo-fb.c fb_mem.c在这里之前最好知道pci,和memio一些术语的意思S3cfb.c中的s3cfb_probe设备探测,是驱动注册的主要函数 点击(此处)折叠或打开转载 2013-09-11 14:39:57 · 729 阅读 · 0 评论 -
LCD驱动分析(二):framebuffer结构的介绍
原文地址:LCD驱动分析(二):framebuffer结构的介绍 作者:huabinbin00基于S5PV210下Framebuffer驱动的分析1. 知道Framebuffer的工作原理2. 了解Framebuffer的架构3. Framebuffer的注册,驱动实现的机制Frame:你所看到的屏幕的图像,或者在一个窗口中的图像转载 2013-09-11 14:39:59 · 762 阅读 · 0 评论 -
LCD驱动分析(一):时序的分析
原文地址:LCD驱动分析(一):时序的分析 作者:huabinbin00第一次调试lcd驱动的话是不是对下面的结构有点陌生,不知道那些值是如何得来的,当然我就属于其中的一个点击(此处)折叠或打开 static struct s3cfb_lcd lte480wv = { .width = 1024,//800, .height转载 2013-09-11 14:38:18 · 1833 阅读 · 0 评论 -
基于S3c6410触摸屏驱动分析(一)
首先说明一下,本文使用的环境是S3C6410(Tiny6410),Linux-2.6.38(友善之臂提供),触摸屏驱动位于drivers/input/touchscreen/目录下。好吧,就让我们开始我们的触摸屏之旅。。。一.硬件简介 S3C6410触摸屏接口与ADC接口集成在一起,触摸屏X、Y坐标所产生的模拟信号通过通道7、5输入如下图示,6410提供触摸屏接口有转载 2013-09-11 14:23:42 · 788 阅读 · 0 评论 -
Linux-2.6.38的LCD驱动分析(四)
Linux-2.6.38的LCD驱动分析(四)参考自:http://blog.chinaunix.net/uid-11114210-id-2907026.html四、s3cfb_ops变量详解 在上面的文字中,较为详细的解释了platform device相关的代码,通过上面的代码的执行,一个platform设备(framebuffer被当作了platform设备转载 2013-09-11 14:20:25 · 772 阅读 · 0 评论 -
Linux-2.6.38的LCD驱动分析(三)
Linux-2.6.38的LCD驱动分析(三)参考自:http://blog.chinaunix.net/uid-11114210-id-2907026.html三、解剖s3cfb_driver变量 s3cfb_driver变量有什么作用呢?在前面的2.2节提到了它的定义,从它的原型可以看出s3cfb_driver是个platform_driver类型的变量,前面的几转载 2013-09-11 14:19:37 · 786 阅读 · 0 评论 -
Linux-2.6.38的LCD驱动分析(二)
Linux-2.6.38的LCD驱动分析(二)参考自:http://blog.chinaunix.net/uid-11114210-id-2907026.html二、s3cfb_probe函数分析2.1 驱动的入口点 摆在面前的第一个问题相信应该是,这个函数是从那里开始运行的。这里就应该从long long ago 开始了,打开linux-2.转载 2013-09-11 14:19:51 · 715 阅读 · 0 评论 -
linux设备驱动归纳总结(一):内核的相关基础概念
原文地址:linux设备驱动归纳总结(一):内核的相关基础概念 作者:diytvgylinux设备驱动归纳总结(一):内核的相关基础概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一.linux设备驱动的作用内核:用于管理软硬件资源,并提供运行转载 2013-09-11 14:42:18 · 523 阅读 · 0 评论 -
Linux-2.6.38的LCD驱动分析(一)
inux-2.6.38的LCD驱动分析(一)参考自:http://blog.chinaunix.net/uid-11114210-id-2907026.html一、让LCD显示可爱的小企鹅还是先说说环境吧,处理器为S3C6410,linux的版本是2.6.38(友善之臂提供的)。下面先说说怎样让LCD上显示出可爱的小企鹅。最直接的步骤如下(记住不要问为什么哈~_~,一步一步跟着转载 2013-09-11 14:19:00 · 982 阅读 · 0 评论 -
I2C设备驱动的编写
前面我们说了如何I2C用户模式驱动,这种驱动基于I2C子系统,但是他对于应用程序开发人员的要求较高,需要应用程序开发人员了解硬件的一些东西,比如时序,地址等等,而多数时候应用程序开发人员是按照操作文件的方法操作设备,所以我们更希望用一些更简单的接口去访问。也就是我们今天的内容——基于I2C子系统的字符驱动。I2C子系统的代码分为三部分如图:Host:主机控制器驱动Device:转载 2013-05-09 10:30:21 · 528 阅读 · 0 评论 -
Linux I2C驱动源码分析(一)
内核版本:2.6.31.6 转自http://www.cnblogs.com/nick123/archive/2010/09/05/1818471.html首先在S3C2440平台的初始化函数中,主要是将开发平台的设备注册进了系统,也就是将device注册到了platform虚拟的总线上,并进行了一些初始化的工作,这里我们只关注I2C的部分。 static void __init转载 2013-05-08 14:15:45 · 468 阅读 · 0 评论 -
file_operations下函数详解
转自:http://www.21ic.com/app/embed/201106/86463.htmstruct file_operations{ struct module *owner; // 指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化为THIS_MODULES loff_t (*llseek) (stru转载 2012-09-21 11:04:05 · 735 阅读 · 0 评论 -
fb_var_screeninfo解析
转自:http://blog.163.com/zhaoxin851055@126/blog/static/81129298201203183430680/struct fb_var_screeninfo {__u32 xres; /* visible resolution */__u32 yres;__u32 xres_virtual; /* virtual resol转载 2012-09-05 23:33:08 · 1255 阅读 · 0 评论 -
嵌入式LINUX环境下基于V4L2视频采集知识
转自 http://www.xiangb.com/vga/vga_946.htmlVideo for Linux two(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应转载 2012-09-07 11:28:55 · 673 阅读 · 0 评论 -
基于Linux的v4l2视频架构驱动编写
from:http://www.linuxidc.com/Linux/2011-03/33022.htm其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做出来也没关系,所以直接退出博士的团队,投靠了院长的门下,呵呵,说到这里其实并不是我太见风使驼转载 2012-09-06 09:33:06 · 567 阅读 · 0 评论 -
Frame buffer详解
一、FrameBuffer的原理FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写转载 2012-09-06 00:27:54 · 4285 阅读 · 0 评论 -
V4L2接口命令说明及操作
转自:http://www.cnblogs.com/hzhida/archive/2012/05/29/2524351.htmlV4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。1、常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers转载 2012-09-05 15:33:16 · 1093 阅读 · 0 评论 -
linux poll函数
转自:http://blog.csdn.net/b_fushuaibing/archive/2010/03/08/5356085.aspx# include int poll ( struct pollfd * fds, unsigned int nfds, int timeout);和select()不一样,poll()没有使用低效的三个基于位的文件描述符set,而是采用了一个单转载 2012-09-04 19:44:43 · 455 阅读 · 0 评论 -
Linux 视频设备驱动V4L2最常用的控制命令使用说明
转载自:http://www.cnblogs.com/hzhida/archive/2012/05/29/2524422.html设置视频设备属性通过ioctl来进行设置,ioctl有三个参数,分别是fd, cmd,和parameter,表示设备描述符,控制命令和控制命令参数。1. 控制命令VIDIOC_QUERYCAP功能: 查询设备驱动的功能 ;参数说明:参数类型为V4转载 2012-09-04 20:26:41 · 475 阅读 · 0 评论 -
V4L2驱动编写入门学习
转载自 http://www.cnblogs.com/armlinux/archive/2011/03/01/2390839.html写的很详细大部分所需的信息都在这里。作为一个驱动作者,当挖掘头文件的时候,你可能也得看看include/media/v4l2-dev.h,它定义了许多你将来要打交道的结构体。一个视频驱动很可能要有处理PCI总线,或USB总线的部分。这里我们不会花转载 2012-09-03 21:05:28 · 1898 阅读 · 0 评论 -
Fedora14配置NFS服务
转载自http://blog.csdn.net/niehanzi/article/details/66593341.安装NFS服务yum -y install nfs-utilsnfs依赖于rpcbind运行,原来是portmap。2. 配置export文件在/etc/exports中增加共享配置,例如:/home/xxxx 192.168.1.106(rw,sy转载 2012-09-03 14:50:13 · 785 阅读 · 0 评论