alsa是音频最重要的框架,没有之一。接下来一个月时间在总结工作知识的主线上。单开个音频支线讲解alsa。说实话,alsa这块我也不是很精通。只在过去的项目中增加 一路substream实现低延时。我打算从下面四个方面去学习alsa。
1.alsa官网。网址如下,大家也可以学习后在评论里 交流,互相进步。如果想偷懒也可以直接看我的总结。
https://www.alsa-project.org/wiki/Main_Page
2.阅读在工作项目中alsa的源码。
3.整理网上各类免费的alsa资源。
4.向开发驱动的同事沟通请教。
写PCI驱动的基本流程
定义PCI ID表 (其它类型的驱动应该也有类似的结构体,比如I2S。后续探究一下)
定义probe回调函数
定义remove回调函数
创建struct pci_driver类型的结构体指向上面的三个元素
定义init 函数,在函数中调用pci_register_driver() 来注册上面定义的pci_driver结构体
定义exit函数来执行pci_unregister_driver()
简单总结一下上面的步骤,其实就两部分:1.定义钩子函数。2.将新定义的模块(结构体+函数)加入/移出框架