自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (4)
  • 收藏
  • 关注

转载 S3C2410:DMA介紹(精)

之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是DMA的单次原子操作,它可以是Unit模式(传输

2012-12-27 10:11:05 3116

转载 Linux下多线程程序调试方法

原文地址多线程程序可能存在很多潜在的bug,如data race,dead lock,信号bug等,而这些bug一向很难调试,现在有很多论文都是基于多线程程序的调试技术的,比如model check,死锁检测,replay技术等,也有很多对应的工具,如intel的pinplay,微软的Zing等。关于这些技术和工具,如果感兴趣可以 google相应的论文进一步了解。这里我主要讲述的是我在对

2012-12-26 14:30:21 1814

转载 系统什么时候发送SIGKILL信号

when does the system send SIGKLILL我的程序有时候会随机收到SIGKILL信号,gdb会提示:Program terminated with signal SIGKILL, Killed.The program no longer exists.(gdb)并且我找不到任何原因?什么时候系统会发送SIGKILL信号呢?我这里没有其他

2012-12-26 13:41:15 2521

转载 linux设备驱动归纳总结(四):5.多处理器下的竞态和并发

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发。除了内核抢占和中断外,由于多处理起的缘故,它可以做到多个程序同时执行。所以,进程除了要防自己的处理器外,还要防别的处理器,这个就是这节要介绍的内容。

2012-12-26 12:29:55 1194

转载 linux_sound_alsa_ALSA体系SOC子系统中hw_params逻辑

linux/sound目录下ALSA体系SOC子系统中hw_params逻辑链接分析:    core/pcm_native.c文件中snd_pcm_hw_params()函数调用err = substream->ops->hw_params(substream, params)。根据soc/soc-core.c文件中snd_pcm_set_ops(pcm, SNDRV_PCM_STR

2012-12-26 10:49:46 4459

转载 linux_sound_alsa_Android+alsa音频系统中的几个问题

1.Android+alsa音频体系大体结构:    从alsa的角度由下往上看:linux中有alsa驱动层,其中,/sound/core/pcm_native.c文件中的snd_pcm_f_ops是alsa驱动层对alsa_lib层的接口;Android中有alsa_lib层(在donut/external/alsa_lib目录下)和alsa应用层;    从Android的角度由

2012-12-26 10:46:18 2519

转载 linux_sound_alsa_ALSA体系SOC子系统中数据流分析

前言:    linux中,无论是oss还是alsa体系,录音和放音的数据流必须分析清楚。先分析alsa驱动层,然后关联到alsa库层和应用层。 链接分析:    core/pcm_native.c文件中.mmap = snd_pcm_mmap调用snd_pcm_mmap_data(substream, file, area);进一步调用substream->ops->mmap

2012-12-26 10:40:10 2177 1

转载 alsa 音频路径的问题:

alsa 音频路径的问题:在sound/soc/codecs目录中有很多音频codec的codec驱动,我使用的是wm9713,AP是s3c6410;这里个驱动文件中定义了很多widget和control,alsa在playback或record的时候,sound/soc/soc-dapm.c中的dapm_power_widgets函数会根据“配置情况”打开相应的widget,搭建一个完整的音

2012-12-26 10:16:00 3799

转载 FS_S5PC100平台上WM9714 ALSA音频移植

FS_S5PC100平台上WM9714 ALSA音频移植     一、驱动的移植    这个驱动在内核中支持,我们只需要进行简单的配置就行了,配置如下:    $ make menuconfig    Device Drivers --->       Sound card support --->         Advanced Linux Soun

2012-12-26 10:06:48 1750

转载 DAPM之三:audio paths与asound.conf

其实asound.conf真跟dapm没多大关系,之所以把它也纳入dapm系列之一,是为了考虑到知识的连贯性。在DAPM之二:AUDIO PATHS与dapm kcontrol>提到:通过配置好asound.conf,上层则可打开asound.conf中定义的虚拟设备,而自动选择相应的音频通道。这是asound.conf很重要的一个作用,从这方面来说,并不是跟dapm完全没关系。 一、认识

2012-12-24 17:04:47 831

转载 DAPM之二:audio paths与dapm kcontrol

在用alsa_amixer controls时,除了我们之前提到的snd_soc_add_controls添加的kcontrols外,还有一些多出来的controls。其实多出来的那些都是属于dapm kcontrol,主要用于切换音频路径。 一、AUDIO PATHS OVERVIEW以标准内核2.6.32的wm8900 codec为例。先看AUDIO P

2012-12-24 16:56:11 778

转载 snd_kcontrol探究

目录(?)[+]control控制接口控制接口对于许多开关(switch)和调节器(slider)应用广泛,它能被用户空间存取,从而读写CODEC相关寄存器。control的主要用于mixer。它用snd_kcontrol_new结构体描述。snd_kcontrol_new[cpp] view plaincopy

2012-12-24 16:23:53 797

转载 Linux驱动的开发与移值——为Tiny210加入AC97驱动Wm9713

文章目的:记录声卡驱动开发的学习过程,本文只是讲解了声卡驱动开发过程中的驱动的基本文件体系结构,暂没有对内核增加新的代码。通过简单的修改配置,让Tiny210具备Ac97的驱动,兼容Tiny6410的声卡芯片Wm9713。上一篇文章《Linux驱动的开发与移值——分析Tiny210的声卡驱动模块》地址:http://blog.csdn.net/koy0755/article/details

2012-12-24 16:02:41 1317

原创 音频电源动态管理(一)---国人当自强

直接来自内核的\Documentation\sound\alsa\soc中dapm.txt1.描述音频电源动态管理(DAPM)的目的是为了在音频子系统中允许便携式的linux设备一直使用最小的电量。它独立于其它内核电源管理,因此可以很方便的和其它电源管理系统共存。DAPM对于所有用户空间的程序也是完全透明的,因为所有的电源开关都是由ASoC core来切换的。用户空间的程序 不需要改变

2012-12-21 23:16:03 1490

转载 Linux alsa驱动中的CODEC寄存器配置问题

调试Audio CODEC时,有时候需要读codec寄存器的值以确认是否配置寄存器成功。 记得之前调试wm8978时,发现这个CODEC的寄存器不能读,每次读的结果都是0xff. 后来在linux上调试wm8978时,用snd_soc_read()又能读到所配置的值,感觉很诧异。当时也没有细究。 这两天有空,在linux内核中看了一下相关代码,发现关于通过I2C读写CODEC的代码在

2012-12-20 15:31:16 1587

转载 Linux 固件子系统----如何更新固件

在一般的使用中,可能会需要使用到升级固件这个功能,在linux的系统中提供了固件子系统这个设备模型来帮助快速的升级固件。在这里先将linux中提供的常用的接口来说明下:内核的固件接口:[cpp] view plaincopy#include   int request_firmware(const struct firmware **

2012-12-19 19:22:34 1506

转载 softlock---Kernel panic - not syncing: softlockup: hung tasks

第一次解一个softlockup的bug,FAE回复的信息都不能很好的分析问题的根源,而且之前对softlockup的认识比较肤浅,所以自己捣鼓这怎么让kernel自己产生个softlockup的warning出来。 基本原理:每个CPU上起一个kernel thread,这个thread就用当前时间去更新一个percpu的全局时间锉;同时在tick中断中检查当前的

2012-12-19 17:03:56 8860 1

转载 内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)

内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)新版本的录制程序终于快完工了,在添加了一个新特性“报警录制”后,就开始测试了。一开始就不顺利:程序正常运行一段时间后就会崩溃,由于程序添加了守护进程,在崩溃后会自动重启。因此测试得到的结果就是:程序运行一段时间后就自动重启,并不断持续;有时几个小时重启一次,有时甚至每分

2012-12-19 13:48:37 17904

转载 Linux内核里的DebugFS

DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。通常情况下,最常用的内核调试手段是printk。但printk并不是所有情况都好用,比如打印的数据可能过多,我们真正关心的数据在大量的输出里不是那么一目

2012-12-18 18:27:17 1460

转载 Linux ALSA声卡驱动之八:ASoC架构中的Platform

1.  Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_pl

2012-12-17 11:23:53 1259

转载 Linux ALSA声卡驱动之七:ASoC架构中的Codec

1.  Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理

2012-12-17 11:23:15 1554

转载 Linux ALSA声卡驱动之六:ASoC架构中的Machine

前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结

2012-12-17 11:21:26 970

转载 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)

1.  ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性:   Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin

2012-12-17 11:20:49 928

转载 Linux ALSA声卡驱动之四:Control设备的创建

声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过contr

2012-12-17 11:18:11 789

转载 Linux ALSA声卡驱动之三:PCM设备的创建

声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,

2012-12-17 11:17:19 1029

转载 Linux ALSA声卡驱动之二:声卡的创建

声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创

2012-12-17 11:15:52 1086

转载 Linux ALSA声卡驱动之一:ALSA架构简介

声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!一.  概述    ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project

2012-12-17 11:13:09 1047

转载 PC-lint安装与集成(检查Unix环境代码)(一)

From:http://hi.baidu.com/zhangzongg/blog/item/0fd0f3d9e87874e377c6383b.htmlPC-LINT简介   PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。  C语言的灵活性带来了代码效

2012-12-15 21:09:58 887

转载 粒度为HZ的时钟中断里如何更新纳秒级别的xtime的值

问:在时钟中断里会调用do_timer而do_timer会调用update_wall_timeupdate_wall_time会更新墙上时间xtimextime的定义如下:struct timespec xtime __attribute__ ((aligned (16)));struct timespec {        __kernel_time_t

2012-12-14 16:16:20 1016

转载 自旋锁spin_lock和raw_spin_lock

本文不打算详细探究spin_lock的详细实现机制,只是最近对raw_spin_lock的出现比较困扰,搞不清楚什么时候用spin_lock,什么时候用raw_spin_lock,因此有了这篇文章。/******************************************************************************************

2012-12-14 14:58:49 792

原创 do_irq中调用do_softirq的原因

这个是Linux的策略。中断是紧急事务,按理都应该立即处理,不得耽误。从理论上来说,是不应该有softirq这种事物的。但在现实中,如果系统总是保证处理完所有中断才干其它事情,那必然就会长时间阻塞其它子系统和用户态程序。引入softirq就成为工程中一种折中。但中断毕竟是紧急事务,系统在不繁忙的时候应该尽快处理它,所以才会在do_irq后接着调do_softirq。这里加了判断,在中断嵌套时不

2012-12-14 14:34:20 2878

转载 YUV格式一点通

概述  YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。其中的 Y,U,V几个字母不是英文单词的组合词,Y代表亮度,uv代表色差,u和v是构成彩色的两个分量。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色 CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路

2012-12-13 13:56:54 686

转载 使用异步 I/O 大大提高应用程序的性能

Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,

2012-12-12 18:04:48 486

转载 Linux 下 strace 命令用法总结

Linux 下 strace 命令用法总结(一)1 功能说明strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. strace 从内核接收信息, 而且无需以任何特别的方式来构建内核. strace 的每一行输出包括系统调用名称, 然后是参数和返回值.下面记录几个常用option:-

2012-12-11 10:31:51 522

转载 如何优化服务器的性能--优化程序

一、通常服务器的性能会卡在三个地方:cpu网络IO磁盘IO二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化:1、提高CPU性能的方法并发。利用多线程、进程。老的线程库效率太低,需要升级用nptl 。进(线)程数不要大于cpu个数 (请参考:http://www.ibm.com/developerworks/cn/linu

2012-12-11 10:28:11 885

转载 移植sbull至kernel version > 2.6.31

移植sbull至kernel version > 2.6.31移植sbull至kernel version > 2.6.31      最近在看LDD3和ULK,学习kernel中块设备的驱动机制,kernel 2.6中block layer API已经变更了许多,主要有以下几点:1. 对于request的请求处理机制,去除掉了原先的elv_next_req

2012-12-10 13:51:41 668

转载 [外一篇]关于Unix Domain Socket

咋一看名字,虽然有个socket,但是它的用场和常说的“网络”socket有所不同。它实际上是一种本地IPC,以socket为名是因为它和普通socket使用的接口是一致的。虽说普通的socket也可以用作本地IPC,但是从效率上和功能上,要逊于Unix Domain Socket。首先,Unix Domain Socket虽然有socket的名,但是它的数据不需要经过网络协议栈处理,而是

2012-12-05 15:11:03 957

转载 idr机制--integer ID management(二)

这篇文章主要讲述如何给要管理的对象分配一个小数字作为id。    首先看知道obj的ID,如果查找obj ,即指向obj的指针。也就是说先看我们想要达到的效果,在来分析如何实现给对象分配ID。    根据ID ,来查找obj。函数idr_find实现查找功能    假如下图中C 的ary[2]指向一个管理的obj。我们来看下如何通过数字66来查找到obj。    我们以top为根的

2012-12-05 10:19:19 1043

转载 idr机制--integer ID management(一)

最近研究进程间通信,遇到了idr相关的函数,为了扫清障碍,先研究了linux的idr机制。        所谓IDR,其实就是和身份证的含义差不多,我们知道,每个人有一个身份证,身份证只是 一串数字,从数字,我们就能知道这个人的信息。同样道理,idr的要完成的任务是给要管理的对象分配一个数字,可以通过这个数字找到要管理的对象。 ID ------------------

2012-12-05 10:18:36 706

转载 C语言中如何使用宏 包括单双井号 可变参数

C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) /

2012-12-04 15:42:27 656

stylegan2模型,可生成网红脸图片

stylegan2模型,可生成网红脸图片,制作属于自己的专属女神脸

2022-05-12

使用tengine进行视频人脸检测的代码

使用tengine进行视频人脸检测的代码,tengine再cpu推理优化比较好,速度比较快

2022-04-10

alsa(asoc dapm)框架分析

alsa(asoc dapm)框架分析,描述了alsa 音频驱动开发过程中一些工具的使用和驱动的分析框架

2012-12-24

Linux C 函数手册

Linux C 函数手册 查c语言函数的工具手册,好用实惠啊

2012-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除