- 博客(9)
- 资源 (7)
- 收藏
- 关注
原创 Linux音频子系统(6)- ASoC Codec
了解ASoC架构Codec1.概述 对于Codec,uda1341主要完成以下功能:音频播放,应用程序将音频文件转换成PCM数据,然后codec芯片对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号;录音,对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号;对音频信号做出相应的处理,例如音量控制,功率放大,EQ控制...
2020-04-29 15:11:46 613
原创 Linux音频子系统(4) - ASoC Machine
了解ASoC架构中的Machine。1.概述 ASoC被分为Machine、Platform和Codec三大部分,并且介绍了其软硬件框架和基本的数据流,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,本章的主要内容是:Machine如何驱动负责处理机器特有的一些控件和音频事件;Machine驱动如何把Platform和Codec结合...
2020-04-29 11:13:07 644 1
原创 Linux音频子系统(3) - ALSA ASoC
了解ASoC1.概述 ASoC是Alsa System on Chip的缩写,用于实现那些集成了声音控制器 的CPU,像移动设备中的arm/mips/atom等。它的设计目标如下:解耦codec. codec的驱动不依赖具体的平台。简单易用的I2S/PCM配置接口。让soc和codec的配置相匹配。动态的电源管理DAPM。实现对用户空间透明的电源管理,各个widget按需供电,实...
2020-04-29 10:53:28 1666
原创 Linux音频子系统(5) - ASoC platform
了解ASoC架构 platform1.概述 在Platform部分,主要是平台相关的DMA操作和音频管理。流程是先将音频数据从内存通过DMA方式传输到CPU侧的dai接口,然后通过CPU的dai接口(通过I2S总线)将数据从达到Codec中,数据会在Codec侧会解码的操作,最终输出到耳机/音箱中。下图作为参考: Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的...
2020-04-29 10:06:50 918 1
原创 Linux音频子系统(7) - PCM
了解PCM1.PCM PCM(Pulse-code modulation)脉冲编码调制,是将模拟信号转化为数字信号的一种方法。声音的转化的过程为,先对连续的模拟信号按照固定频率周期性采样,将采样到的数据按照一定的精度进行量化,量化后的信号和采样后的信号差值叫做量化误差,将量化后的数据进行最后的编码存储,最终模拟信号变化为数字信号。PCM两个重要属性采样率: 单位时间内采样的次数,采...
2020-04-24 20:00:36 1321
原创 Linux音频子系统(2) - ALSA Framework
了解ALSA架构1.概述 ALSA 是一个完全开放源码的音频驱动程序集,是由志愿者维护的开源项目,而 OSS 则是由公司提供的商业产品。ALSA 系统包括驱动包alsa-driver(集成在内核源码),开发包 alsa-libs,开发包插件 alsalibplugins,设置管理工具包 alsa-utils,其他声音相关处理小程序包alsa-tools,特殊音频固件支持包 alsa-fi...
2020-04-24 15:17:13 1417 1
原创 linux音频子系统 (1) - 硬件基础
了解硬件基础接口1.硬件接口2.数字音频信号的传输标准I2SPCM(Pulse Code Modulation)PDM(Pulse Density Modulation)S/PDIF和Ethernet AVB主要用于板间长距离及需要电缆连接的场合2.1.I2S I2S全称Inter-IC Sond Bus,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用...
2020-04-24 15:03:05 880
原创 Linux 内核之bitmap
分析bitmap. 参考此文1.Bit 简介 bit 中文翻译 ‘位’,即代表计算机里最小的计数单位。bit 在计算机里可用于表示 ‘0’ 和 ‘1’ 两个值,由于表征数字信号高低电平,为计算机提供了最基础的数据基础。 计算机中,多个 bit 的集合构成了固定长度不同的数据类型,比如字节,字,双字等 数据类型;多个 bit 也可以构成长度不同的位图 (bitmap), 因此位图就是包含了...
2020-04-24 10:31:58 2472
原创 linux IRQ Management(九)- 驱动中断常用API
了解驱动常用API1.irq的打开和关闭 最基本的一对:enable_irq(unsigned int irq);disable_irq(unsigned int irq); 这两个API应该配对使用,disable_irq可以被多次嵌套调用,要想重新打开irq,enable_irq必须也要被调用同样的次数,为此,irq_desc结构中的depth字段专门用于这两个API嵌套...
2020-04-12 18:16:48 835 1
Practical_Binary_Analysis
2019-02-15
Operating_Systems_From_0_to_1
2019-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人