摘要: SMMU 驱动中的系统 I/O 设备探测 要使系统 I/O 设备的 DMA 内存访问能通过 IOMMU,需要将系统 I/O 设备和 IOMMU 设备绑定起来,也就是执行 SMMU 驱动中的系统 I/O 设备探测。总线发现系统 I/O 设备并和对应的驱动程序绑定,与 IOMMU 设备驱动程序注册并为 阅读全文
posted @ 2023-11-17 18:22 wolfcs 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 概述 从 ALSA API 的早期开始,它就被定义为支持 PCM,或考虑到了 IEC61937 等固定比特率的载荷。参数和返回值以帧计算是常态,这使得扩展已有的 API 以支持压缩数据流充满挑战。 最近这些年,音频数字信号处理器 (DSP) 常常被集成进片上系统 (SoC) 设计中,且 DSPs 也 阅读全文
posted @ 2023-11-11 10:43 wolfcs 阅读(85) 评论(0) 推荐(0) 编辑
摘要: Linux 系统下的 SMMU 介绍 在计算机系统架构中,与传统的用于 CPU 访问内存的管理的 MMU 类似,IOMMU (Input Output Memory Management Unit) 将来自系统 I/O 设备的 DMA 请求传递到系统互连之前,它会先转换请求的地址,并对系统 I/O 阅读全文
posted @ 2023-11-11 10:33 wolfcs 阅读(1841) 评论(0) 推荐(0) 编辑
摘要: 高级 Linux 音频架构 (ALSA) 用于为 Linux 操作系统提供音频和 MIDI 功能。它可以高效地支持所有类型的音频接口,从消费者声卡到专业的多通道音频接口。它支持全模块化的音频驱动。它是 SMP 和线程安全的。它提供了用户空间库 (alsa-lib) 来简化应用程序编程并提供了更高级的 阅读全文
posted @ 2023-10-16 18:56 wolfcs 阅读(1404) 评论(0) 推荐(0) 编辑
摘要: 目录理解音频接口典型的音频应用做了什么最小的播放程序最小的采集程序最小的中断驱动程序最小的全双工程序术语如何做 . . .打开设别设置参数硬件参数软件参数为什么你可以忘掉这里的一切 a56爆大奖在线娱乐尝试提供一些对 ALSA 音频 API 的介绍。它不是 ALSA API 的完整参考手册,它也不包含更复杂的软件需 阅读全文
posted @ 2023-10-07 16:53 wolfcs 阅读(406) 评论(0) 推荐(0) 编辑
摘要: Linux 内核设备驱动程序通过 `devm_regmap_init_mmio()` 等函数获得 `struct regmap` 结构对象,该对象包含可用于访问设备寄存器的全部信息,包括定义访问操作如何执行的 bus,定义了各个设备寄存器的读写属性的 config,以及加速设备寄存器访问的 cach 阅读全文
posted @ 2023-08-30 23:06 wolfcs 阅读(866) 评论(0) 推荐(0) 编辑
摘要: ## debugfs 文件系统 debugfs 可以为 Linux 内核各个模块的分析调试,提供许多信息,如音频子系统的 ASoC,以及 tracing 等。debugfs 文件系统可以通过命令行工具挂载,如下所示: ``` root@apollo:~# ls /sys/kernel/debug/ 阅读全文
posted @ 2023-08-28 18:48 wolfcs 阅读(617) 评论(0) 推荐(0) 编辑
摘要: Linux 内核 ASoC 框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括 Codec 类驱动程序、平台类驱动程序和机器类驱动程序。在实现上,机器类驱动程序用 `struct snd_soc_card` 和 `struct snd_soc_dai_link` 结构描述,属于平台类 阅读全文
posted @ 2023-08-26 19:22 wolfcs 阅读(296) 评论(0) 推荐(0) 编辑
摘要: Linux 内核提供了一套可缓存的设备 IO 寄存器访问机制,即 **regmap**。**regmap** 机制支持以统一的接口,访问多种不同类型的设备 IO 寄存器,如内存映射的设备 IO 寄存器,需要通过 I2C、I3C、SPI、AC97 和 SLIMBUS 等总线访问的设备 IO 寄存器等。 阅读全文
posted @ 2023-08-25 19:03 wolfcs 阅读(316) 评论(0) 推荐(1) 编辑
摘要: 来而不往非礼也。前面看到了用户空间应用程序和 DMA buffer 之间交换数据,并更新 `runtime->control->appl_ptr` 指针的过程,这里看一下硬件设备驱动程序在完成 DMA buffer 和硬件设备的数据交换之后,更新 `runtime->status->hw_ptr` 阅读全文
posted @ 2023-08-24 11:38 wolfcs 阅读(499) 评论(0) 推荐(1) 编辑