alsa_总结1

1
controlC0 用于声卡的控制,例如通道选择,混音,麦克风的控制等
pcmC0D0c 用于录音的pcm设备
pcmC0D0p 用于播放的pcm设备
timer 定时器
C0D0代表的是声卡0中的设备0,pcmC0D0c最后一个c代表capture,pcmC0D0p最后一个p代表playback,这些都是alsa-driver中的命名规则。

2
mdev是busybox自带的一个简化版的udev。
作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的
1 mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有 <dev属性> 的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点
2 当mdev因uevnet事件(以前叫hotplug事件)被调用时

在这里插入图片描述


分析设备创建逻辑
1 实际操作的 oparetion 是从 snd_minors[ ] 数组得到的。
2 从上我们可以知道如何把树放进 snd_minors[ ] 数组 中。
3 snd_card_create(index, id, THIS_MODULE, 0, &card);
这个函数(1)创建一个 struct snd_card *card 结构体
(2)创建 一个 controlC 控制设备
4 snd_pcm_new(),创建逻辑设备(播放设备或录音设备)
5 可以看出 snd_register_device 配合 mdev 创建了控制设备节点
snd_pcm_dev_register 配合 mdev 创建了 pcm 播放 录音设备


3
注册设备文件的步骤

总结:
(1)构造snd_card结构体,snd_card_create()构造snd_card结构体并自动创建控制接口。调用函数snd_ctrl_create
(2)初始化;如snd_pcm_new(),创建逻辑设备(播放设备或录音设备)
(3)注册 snd_card_register

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值