首页 > 其他分享 >第4篇 machine,platform,codec

第4篇 machine,platform,codec

时间:2023-09-05 09:46:11浏览次数:43  
标签:snd struct driver soc dai machine platform codec

参考:韦东山Linux教程

(1)machine : 单板相关								//结构体: struct snd_soc_card -> struct snd_soc_dai_link
	1)表明 platform 是哪个, 通过 snd_soc_dai_link 指定名字,进行匹配
		1. 指定 CPU DAI (IIS)
		2. snd_soc_platform_driver(指定 DMA)
	2)表明 codec 是哪个, 通过 snd_soc_dai_link 指定名字,进行匹配
		1. 指定 codec DAI 
		2. snd_soc_code_driver(指定控制接口 (L3) )
		
(2)platform: 	//2440板
	1)CPU DAI (IIS): 设置接口, 					//结构体: struct snd_soc_dai_driver
		1. 实现对2440板 IIS 控制器的设置(hw_params, fmt, clkdiv, sysclk)
		2. 与 IIS 和 音频数据传输 的控制(trigger)
	2)snd_soc_platform_driver(指定 DMA): 配合 IIS 实现音频数据的传输  		//结构体: struct snd_soc_platform_driver	//应该理解为 
		1. request_irq, 触发DMA传输, 中断处理
		
(3)codec: 		//编解码芯片
	1)DAI (IIS): 									//结构体: struct snd_soc_dai_driver
		1. 与 IIS 和 音频数据传输 的控制(startup)
		2. 与 IIS 和 音频数据传输 相关的参数设置,比如时钟设置,格式(hw_params, fmt, sysclk)		//可能会用到 L3 操作
	2)snd_soc_code_driver(指定控制接口 (L3) ): 							//结构体: struct snd_soc_codec_driver		//应该理解为 codec_driver
		1. 实现 L3 引脚的初始化, 用 GPIO 模拟
		2. 实现对寄存器操作函数 (UDA1341的寄存器),按时序(read, write, reg地址)

注意: 
	DAI (Digital Audio Interface)

Machine : struct snd_soc_dai_link
	指定下面的 Platform 和 Codec : 
		codec_name, platform_name, cpu_dai_name, codec_dai_name, ops
Platform : 
	CPU_DAI : struct snd_soc_dai_driver
						.name		//machine 中的 dai_link 通过 cpu_dai_name 来匹配 cpu_dai
						.palyback 	//回放数据流性能描述信息
						.capture	//录制数据流性能描述信息
						.ops		//操作函数集合,将数据从 I2S_Tx_buf --> Codec 
	PCM_DMA : struct snd_soc_platform_driver
						.name
						.struct snd_kcontrol_new *controls;	//音频控件指针
						.ops		//操作函数集合,操作 DMA_buf --> I2S_Tx_buf
Codec: 
	Codec : struct snd_soc_code_driver
						.struct snd_kcontrol_new *controls;	//音频控件指针
						.set_sysclk : 时钟配置函数
						.read :  读取 Codec 寄存器接口, 如可通过 /dev/controlC0 读取 Codec 的音量
						.write : 写入 Codec 寄存器接口, 如可通过 /dev/controlC0 设置 Codec 的音量
						
	Codec_DAI: struct snd_soc_dai_driver
						.name		//machine 中的 dai_link 通过 codec_dai_name 来匹配 codec_dai
						.palyback 	//回放数据流性能描述信息
						.capture	//录制数据流性能描述信息
						.ops		//操作函数集合,配置 DAI 时钟,格式 等


标签:snd,struct,driver,soc,dai,machine,platform,codec
From: https://www.cnblogs.com/charlie12345/p/17678839.html

相关文章

  • 安装weditor时提示“ UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in po
    问题:安装weditor时提示“UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xadinposition645:illegalmultibytesequence” 解决:方法一:解决方法一设置用户或者系统变量: 方法二:设置临时变量后再pipinstallsetPYTHONUTF8=1pipinstallweditor 原......
  • 机器学习 -> Machine Learning (III)
    来做一些入门题吧.以下大多是kaggle环境.Q1Titanichttps://www.kaggle.com/competitions/titanicimport#ThisPython3environmentcomeswithmanyhelpfulanalyticslibrariesinstalled#Itisdefinedbythekaggle/pythonDockerimage:https://github.com/......
  • Java:commons-codec实现byte数组和16进制字符串转换
    目录commons-codec实现原理封装StringUtil类commons-codec文档https://commons.apache.org/proper/commons-codec/https://mvnrepository.com/artifact/commons-codec/commons-codec坐标<dependency><groupId>commons-codec</groupId><artifactId>com......
  • Java:commons-codec实现byte数组和16进制字符串转换
    (目录)commons-codec文档https://commons.apache.org/proper/commons-codec/https://mvnrepository.com/artifact/commons-codec/commons-codec坐标<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifact......
  • 机器学习 -> Machine Learning (II)
    这次来学习深度学习吧!1训练前1.1神经元与神经网络神经元是神经网络的基本单位,模拟了生物神经元的工作机制.每个神经元接受一组输入,将这些输入与其权重相乘,然后对所有的乘积求和,并加上一个偏置.最后,将得到的结果传递给激活函数.神经网络由多个神经元组成,这......
  • UnicodeEncodeError: 'gbk' codec can't encode character '\ue1bb' in positio
    环境操作系统:Windows11开发环境:Pycharm2021.4虚拟环境管理:Conda操作流程:打开Pycharm->打开Terminal 错误信息 #>>>>>>>>>>>>>>>>>>>>>>ERRORREPORT<<<<<<<<<<<<<<<......
  • hdu:Machine Schedule(二分图匹配)
    ProblemDescriptionAsweallknow,machineschedulingisaveryclassicalproblemincomputerscienceandhasbeenstudiedforaverylonghistory.Schedulingproblemsdifferwidelyinthenatureoftheconstraintsthatmustbesatisfiedandthetypeof......
  • 机器学习 -> Machine Learning (I)
    1机器学习概述1.1定义及应用领域机器学习是一种让计算机通过经验学习并对输入数据做出决策或预测的方法.它是人工智能的一个重要分支,已广泛应用于各种领域,如自然语言处理,计算机视觉,推荐系统,医疗诊断,金融风险预测等.1.2机器学习与人工智能,深度学习的关系人......
  • [ABC313F] Flip Machines
    ProblemStatementThereare$N$cardsnumbered$1$through$N$.Eachfaceofacardhasanintegerwrittenonit;card$i$has$A_i$onitsfrontand$B_i$onitsback.Initially,allcardsarefaceup.Thereare$M$machinesnumbered$1$through$M$.Mach......
  • WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfo
    问题描述使用start-dfs.sh命令开启hdfs服务时,爆出这样的警告信息问题解决可以先进入到我们下载hadoop的文件目录下,然后进入到这个文件里面:vimetc/hadoop/log4j.properties然后将下面的语句添加到问年末尾处:log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR......