Android系统级深入开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.4.8 DSP相关的驱动程序

MSM的DSP(数字信号处理器)具有比较高级的功能,主要在如下的目录中。

arch/arm/mach-msm/qdsp5:MSM7k系列处理器使用的5代DSP

arch/arm/mach-msm/qdsp6:QSD8k系列处理器使用的6代DSP

其中,arch/arm/mach-msm/qdsp6中包含了若干文件,主要内容如下所示:

dal.c:dal协议文件。

q6audio.c:Audio系统通用库文件。

audio_ctl.c :音频控制文件。

routing.c:音频路径控制。

pcm_in.c:PCM输入通道。

pcm_out.c :PCM输出通道。

mp3.c:MP3码流直接输出通道。

msm_q6vdec.c:视频解码。

msm_q6venc.c:视频编码。

提示:MSM的DSP相关目录中的一些内容是整合DSP处理和用户空间输入输出设备于一体的内容,例如mp3.c提供的就是从MP3解码到输出到设备与一体的功能。

Audio系统的头文件是arch/arm/mach-msm/include/mach目录中的msm_qdsp6_audio.h文件。以上与Audio相关的文件在用户空间建立了如下设备节点:

    crw-------    1 root     root       10,  56 2010-01-14 11:53 msm_audio_route
    crw-rw----    1 system   audio      10,  55 2010-01-14 11:53 msm_audio_ctl
    crw-rw----    1 system   audio      10,  57 2010-01-14 11:53 msm_mp3
    crw-rw----    1 system   audio      10,  58 2010-01-14 11:53 msm_pcm_in
    crw-rw----    1 system   audio      10,  59 2010-01-14 11:53 msm_pcm_out

以上设备的主设备号为10,可见为Linux中的MISC(杂项)字符设备。

MSM视频编解码的头文件在include/linux/目录中:

msm_q6vdec.h:视频解码器头文件

msm_q6venc.h:视频编码器头文件

    crw-rw----    1 system   audio      10,  54 2010-01-14 11:53 q6venc
    crw-rw----    1 system   audio     252,   0 2010-01-14 11:53 vdec

q6venc是视频编码器在用户空间的节点,是一个MISC字符设备,vdec是视频解码器在用户空间的节点,是一个自定义的字符设备。