与Android音频驱动程序有关

时间:2010-09-15 08:28:02

标签: android

当我潜入Android内核时。我对音频设备驱动程序有疑问。

人们说...... - Android使用ALSA音频驱动程序。 - HAL层是C / C ++库 - ALSA驱动程序在用户空间中运行,而不是在内核空间中运行

然后,问题: 1.下图中的音频驱动程序(我猜它是ALSA驱动程序)是什么? ALSA驱动程序应该存在于库部分,不是吗? (http://developer.android.com/guide/basics/what-is-android.html

2。 Android内核中的音频驱动程序应该没有任何内容,如果它符合ALSA驱动程序吗?

  1. 我有一个wm8994.c编解码器源文件,它实际上驱动了编解码器h / w。 谁打算在wm8994.c中调用这些函数?我认为ALSA HAL会。我错了吗?
  2. 我很困惑......

    谢谢 ilgimae

1 个答案:

答案 0 :(得分:3)

我认为现在回答为时已晚,可能你现在已经找到了答案。

android HAL层编写的是C / C ++。根据ALSA框架,驱动程序不在用户空间中。所有应用程序都使用ALSA库,而ALSA库又使用内核中的ALSA frmawwork,后者将使用编解码器驱动程序中存在的函数,在这种情况下为wm8994.c。

所以问题1: 驱动程序存在于内核空间中,但应用程序使用ALSA库(用户空间)中定义的API。

问题2: 您拥有的源代码是驱动程序,它将存在于内核空间中。 ALSA核心将调用这些功能(通过ALSA SoC层,用于芯片上的系统)。

希望这会有所帮助。