论文部分内容阅读
当今世界,嵌入式系统高速发展,几乎无处不在。与此同时,我国现有的嵌入式研究和生产水平与国际先进水平有较大的差距,特别是在嵌入式操作系统这项核心技术上始终没有大的突破。开源Linux操作系统在嵌入式领域的发展,为我国扭转在嵌入式操作系统领域的落后局面提供了机遇。在Linux系统中,设备驱动程序是重中之重,对整个系统的运行起着至关重要的作用。音频信号作为多媒体的主要组成部分,是Linux设备驱动程序中不可缺的。Linux设备驱动涉及到处理器平台、硬件平台、总线和Linux内核的相关知识,设备驱动模块通过Linux系统调用运行在内核态。论文采用S3C2440为微处理器,使用IIS总线和DMA技术,同时,采用了Linux内核中的系统调用、文件系统等相关模块,编写了音频编解码器UDA1341TS的驱动程序。然后,移植驱动到开发板,并编写相应的测试程序,使用NFS网络文件系统运行测试程序。从嵌入式系统的方案选择出发,使用S3C2440处理器和Linux操作系统;硬件平台使用TQ2440开发平台,分析了硬件原理图;在Windows环境下,建立了主机与开发板的连接;采用虚拟机VMware7.0,搭建了RHEL5.4 Linux操作系统平台,并成功移植了交叉编译器arm-linux-gcc,为驱动程序开发做好准备。阐述音频编解码器UDA1341TS的工作原理和音频设备常用的3种总线的特点,在音频驱动程序设计中综合使用了DMA、分段多缓存区和内存映射技术以提高系统性能,满足音频实时性的要求。在Linux内核中提供了OSS和ALSA两种声卡驱动框架。OSS驱动框架包含dsp和mixer字符设备接口,在用户空间中完全使用文件操作编程;ALSA驱动框架以card和组件为主线,在用户空间中不使用文件接口,而使用alsa-libs编程。最后,通过内核配置与裁剪,移植ALSA声卡驱动体系,并使用NFS文件系统运行测试程序,试验成功。