08 2023 档案

摘要:Linux 内核设备驱动程序通过 `devm_regmap_init_mmio()` 等函数获得 `struct regmap` 结构对象,该对象包含可用于访问设备寄存器的全部信息,包括定义访问操作如何执行的 bus,定义了各个设备寄存器的读写属性的 config,以及加速设备寄存器访问的 cach 阅读全文
posted @ 2023-08-30 23:06 wolfcs 阅读(1384) 评论(0) 推荐(0) 编辑
摘要:## debugfs 文件系统 debugfs 可以为 Linux 内核各个模块的分析调试,提供许多信息,如音频子系统的 ASoC,以及 tracing 等。debugfs 文件系统可以通过命令行工具挂载,如下所示: ``` root@apollo:~# ls /sys/kernel/debug/ 阅读全文
posted @ 2023-08-28 18:48 wolfcs 阅读(1096) 评论(0) 推荐(0) 编辑
摘要:Linux 内核 ASoC 框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括 Codec 类驱动程序、平台类驱动程序和机器类驱动程序。在实现上,机器类驱动程序用 `struct snd_soc_card` 和 `struct snd_soc_dai_link` 结构描述,属于平台类 阅读全文
posted @ 2023-08-26 19:22 wolfcs 阅读(637) 评论(0) 推荐(0) 编辑
摘要:Linux 内核提供了一套可缓存的设备 IO 寄存器访问机制,即 **regmap**。**regmap** 机制支持以统一的接口,访问多种不同类型的设备 IO 寄存器,如内存映射的设备 IO 寄存器,需要通过 I2C、I3C、SPI、AC97 和 SLIMBUS 等总线访问的设备 IO 寄存器等。 阅读全文
posted @ 2023-08-25 19:03 wolfcs 阅读(922) 评论(0) 推荐(1) 编辑
摘要:来而不往非礼也。前面看到了用户空间应用程序和 DMA buffer 之间交换数据,并更新 `runtime->control->appl_ptr` 指针的过程,这里看一下硬件设备驱动程序在完成 DMA buffer 和硬件设备的数据交换之后,更新 `runtime->status->hw_ptr` 阅读全文
posted @ 2023-08-24 11:38 wolfcs 阅读(1182) 评论(0) 推荐(1) 编辑
摘要:Linux 用户空间应用程序通过声卡驱动程序(一般牵涉到多个设备驱动程序)和 Linux 内核 ALSA 框架导出的 PCM 设备文件,如 `/dev/snd/pcmC0D0c` 和 `/dev/snd/pcmC0D0p` 等,与 Linux 内核音频设备驱动程序和音频硬件进行数据传递。PCM 设备 阅读全文
posted @ 2023-08-24 11:29 wolfcs 阅读(1760) 评论(0) 推荐(1) 编辑
摘要:这种绑定依然处于开发中,并且基于 benh[1] 的一些实验性工作。 时钟信号源可以由设备树中的任何节点表示。这些节点被指定为时钟提供者。时钟消费者节点使用 `phandle` 和时钟指示符对将时钟提供者输出连接到时钟输入。与 gpio 指示符类似,时钟指示符是 0 个、1 个或多个标识设备上的时钟 阅读全文
posted @ 2023-08-23 16:57 wolfcs 阅读(1245) 评论(0) 推荐(0) 编辑
摘要:Linux 内核 ALSA 框架通过向用户空间导出多个设备文件,以使用户空间程序可以与内核的音频子系统交互,可以访问音频硬件设备。 ## Linux 内核 ALSA 音频框架初始化 Linux 内核 ALSA 音频框架初始化时,注册字符设备驱动,并在 `/proc` 文件系统中,创建音频设备信息相关 阅读全文
posted @ 2023-08-23 16:55 wolfcs 阅读(448) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏