全部博文(396)
发布时间:2016-09-29 13:35:37
1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始.........【阅读全文】
发布时间:2016-09-29 13:33:31
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用.........【阅读全文】
发布时间:2016-09-28 11:49:41
Linux 网络内核代码中使用了通知链(Notification Chains)来使相关的子系统对感兴趣的事件作出反应。下面从头介绍一下通知链的使用。数据结构定义通知链使用的数据结构如下:struct notifier_block { int (*notifier_call)(struct notifier_block *, unsigned long, void *); s.........【阅读全文】
发布时间:2016-09-26 14:11:48
前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapter方式(LEGACY)”和“Probe方式(new style)”。(1)Adapter方式(LEGACY).........【阅读全文】
发布时间:2016-09-26 11:56:03
几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取.........【阅读全文】