gpt4 book ai didi

audio - 为 Cyclone V SoC (Linux) 创建简单的音频驱动程序

转载 作者:行者123 更新时间:2023-12-02 22:55:33 25 4
gpt4 key购买 nike

我正在使用 Altera Cyclone V SoC 为电路板设计软件(运行 Linux 的 ARM Cortex-A9 与 FPGA 耦合)。 Linux 操作系统运行良好,支持板载外围设备(以太网、SD 卡等),我可以从用户空间程序访问 FPGA,目前使用 mmap()。
现在,该板还可以用作 SDR(软件定义 radio )平台,因此作为噱头,我实现了一个非常简单的 FM 发射器。这已经运行良好,但它只是 FPGA 内部的静态配置,与操作系统没有真正的连接。

我想做的是将发射器链接到操作系统,理想情况下,它可以用作标准音频输出设备,即声卡。硬件方面很灵活,目前非常简单:

  • 状态寄存器告诉是否正在播放样本。
  • 存储器地址寄存器将当前读取指针保存到系统存储器中,从中提取样本 (DMA)。
  • 包含要播放的剩余样本数的寄存器。
  • 用于设置硬件采样率的寄存器。

  • 这个接口(interface)不是固定的,如果有必要,它可以很容易地改变。如果明智的话,我还可以将界面更新为类似于现有设备的界面,以便我可以使用它的驱动程序。

    现在的问题是,我应该如何开始与 Linux 的集成,即如何获取/构建合适的内核模块。我对内核模块开发相当陌生,所以我真的不知道从哪里开始。 documentation of the Linux sound subsystem肯定会包含很多有用的信息,但我错过了“大图”,例如什么应该进入驱动程序的哪个部分,或者系统的实际接口(interface)(如果我理解正确的话,ALSA)必须是什么样子。

    顺便说一句:我知道 LDD3 的书,并且知道内核模块的外观和工作方式,但我不知道如何构建一个与音频子系统配合得很好的模块。

    感谢您的意见、建议、链接等。

    最佳答案

    关于audio - 为 Cyclone V SoC (Linux) 创建简单的音频驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34575899/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com