历史上的今天
返回首页

历史上的今天

今天是:2025年07月23日(星期三)

正在发生

2021年07月23日 | 嵌入式驱动移植之声卡驱动移植

2021-07-23 来源:eefocus

移植环境

BootLoader:u-boot-1.1.6

kernel:linux-2.6.30.4

CPU:s3c2440

开发板:TQ2440

声卡:UDA1341


移植步骤

在 Linux-2.6.30.4 的驱动中已经包含了 UDA13410 的驱动了,不过原生的 1.0.20 这个版本会出现播放音频视频断断续续的情况,应该是驱动 bug,这里使用了 1.0.18a 这个版本的驱动,成功解决了播放断断续续的问题。


1、在 Linux-2.6.30.4 中替换 1.0.18a 的驱动:

获取 1.0.18a 的声卡驱动,可以下载 Linux-2.6.29.xxx 的内核源码,然后复制其中的“sound/”目录和“ include/sound/ ” 目 录 到 Linux-2.6.30.4 的 内 核 中 替 换 掉 原 来 的 目 录 ; 然 后 复 制“ include/asm-arm/plat-s3c24xx/ ” 目 录 到 Linux-2.6.30.4 目 录 下 的 “ include/asm-arm/ ” 目 录 下 ; 复 制

“arch/arm/mach-s3c2410/include/mach/audio.h”文件到对应的目录下。

在“include/linux/proc_fs.h”文件中 70 行添加如下内容:


struct module *owner;

1

因为在“sound/core/info.c”文件的 159 和 982 行用到了 struct proc_dir_entry 结构图的 owner 变量。


然后修改“arch/arm/mach/mach-s3c2440/mach-smdk2440.c”文件,添加如下内容:


 # include

1

/* UDA1341 */

static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {

.l3_clk = S3C2410_GPB4,

.l3_data = S3C2410_GPB3,

.l3_mode = S3C2410_GPB2,

.model = UDA134X_UDA1341,

};

static struct platform_device s3c_device_uda134x = {

.name = "s3c24xx_uda134x",

.dev = {

.platform_data = &s3c24xx_uda134x_data,

}

};

static struct platform_device *smdk2440_devices[] __initdata = {

&s3c_device_usb,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_i2c0,

&s3c_device_iis,

&s3c_device_rtc,

&s3c_device_dm9000,

&s3c_device_uda134x, //添加的

};


2、配置内核

Device Drivers —>

<* > Sound card support —>

— Sound card support

<* > Advanced Linux Sound Architecture —>

— Advanced Linux Sound Architecture

<* > OSS Mixer API

<* > OSS PCM (digital audio) API

[* ] Verbose procfs contents

<* > ALSA for SoC audio support —>

— ALSA for SoC audio support

<* > SoC Audio for the Samsung S3CXXXX chips

<* > SoC I2S Audio support UDA134X wired to a S3C24XX

完成配置后,保存配置单,编译出内核,烧写镜像到开发板之后,可以在开发板上面使用声卡设备了。


3、测试声卡

使用 madplay 播放器来播放 MP3 等音频文件,直接复制天嵌科技提供的文件系统里面的 madplay 到NFS文件系统的“sbin/”目录下即可。

在这里插入图片描述

这里发现一个问题,按照天嵌的方法不能录音和播放:

在开发板的串口终端使用:#cat /dev/sound/dsp > /tmp/abc.wav 这条命令进行录音测试,然后再使用:#cat /tmp/abc.wav > /dev/sound/dsp,

发现用不了,有待解决。。。。。。。

推荐阅读

史海拾趣

正泰公司的发展小趣事

为了在全球市场上保持领先地位,正泰建立了北美、欧洲、亚太等三大全球研发中心,并与清华大学、上海交大等国内外知名院校、机构展开合作,探索“产学研”融合模式。通过整合全球创新资源,正泰在智能电网、新能源电车充电设施等前沿领域取得了一系列创新进展。这种全球研发体系的建立,不仅提升了公司的研发能力,也增强了公司的市场竞争力。

Digital View公司的发展小趣事

随着数字化技术的不断进步和应用领域的不断扩大,Digital View公司也加快了数字化转型和升级的步伐。公司加大了对云计算、大数据、人工智能等前沿技术的研发和应用力度,推出了一系列智能化、数字化的产品和服务。这些产品和服务不仅提高了客户的运营效率和管理水平,还为公司带来了新的增长点。

博巨兴公司的发展小趣事

博巨兴公司一直注重技术研发和自主创新,近年来公司研发费用投入均占当年销售额的10%以上。凭借科学的管理手段和雄厚的技术力量,公司于2006年被认定为“深圳市软件企业”,2007年被认定为“深圳市高新技术企业”,2011年更是荣获“国家高新技术企业”称号。这些荣誉的获得不仅是对公司技术实力的认可,也为公司的进一步发展奠定了坚实基础。

Freqtech Ohg公司的发展小趣事

在电子行业的激烈竞争中,Freqtech Ohg公司深知技术创新的重要性。公司投入大量研发资源,专注于高频电子技术的研发。经过数年的努力,Freqtech成功开发出一款高性能的高频滤波器,该产品在信号传输效率和稳定性方面远超同类竞品。这一技术创新不仅为公司赢得了国内外多个重要客户,还使得Freqtech在高频电子领域迅速崛起,成为行业内的佼佼者。

Entegris公司的发展小趣事

2019年1月底,Entegris与Versum Materials宣布合并。合并后的公司由Entegris占据五席董事,而Versum占四席。Versum是一家主要生产半导体的化学、气体及输送系统的公司,两家公司的前三大客户均为台积电、英特尔、三星电子。合并后,新公司在半导体材料市场的影响力显著增强,同时也面临着来自德国默克等竞争对手的挑战。

得力(deli)公司的发展小趣事

得力公司在文具和打印机领域取得成功后,并未满足于此,而是继续寻求新的增长点。2016年,得力集团与余姚得力工具有限公司合资成立宁波得力工具有限公司,正式进入电动工具领域。得力凭借其在技术研发和品质控制方面的优势,迅速在电动工具市场占据一席之地。特别是其自主研发的“红芯”系列电动工具,凭借其高品质、高性价比的特点,赢得了用户的广泛好评。

问答坊 | AI 解惑

一个DC/DC电感的问题

DC输入端的L1  33uH,能否换成150uH,电感增大一点,滤高频效果更好一点,对电池、对输入有影响吗?…

查看全部问答>

03年宽带放大电路

本帖最后由 paulhyde 于 2014-9-15 09:35 编辑 大家看看 不要钱  …

查看全部问答>

wince wifi配置程序

WINCE下,应用程序如何调出wifi配置程序窗口…

查看全部问答>

打算用CE做点东西, 不知道什么才有市场?

打算用CE做点东西, 不知道什么才有市场?大家推荐一下…

查看全部问答>

85个人生概念

1、别低估任何人。 2、你没那么多观众,别那么累。 3、温和对人对事。不要随意发脾气,谁都不欠你的。 4、现在很痛苦,等过阵子回头看看,会发现其实那都不算事。 6、学会宽容伤害自己的人,因为他们很可怜,各人都有自己的难处,大家都不容 ...…

查看全部问答>

Windows Mobile 2003 支持 java开发环境吗?

Windows Mobile 2003 支持 java开发环境吗? 使用JDK1.5开发的程序能运行吗?…

查看全部问答>

想问问大家WINCE是怎么样实现数据库操作的?

没有接触过嵌入式开发,现在公司有点小需求需要用到WINCE开发一个数据库记录东西的小程序,请教一下大家,作个大概的了解!…

查看全部问答>

刚装了Evc4+sp3+sdk4.2+ppc2003sdk,编译的时候报“The emulator coul not be found in the speci

模拟器已经装了阿,可以看到的,为什么编译出问题呢?模拟器的安装路径不能变吗?哪位能告诉我evc4怎么配置阿,有哪本书讲啊?…

查看全部问答>

小弟想找个做过2.4G无线的帮助,做好有一定报酬

小弟正在做一个项目,是用飞思卡尔的MCU+2.4 G无线,无线可以随便   想找个做过或熟悉2.4G的帮我写,或教我写无线部分代码。可以付一定的报酬,不要太多哦,我也打工  .实在无办法了,只能自掏腰包。       跪求各 ...…

查看全部问答>

求c2000库函数文档

最近在学习28027,也买了个开发板。下载了不少论坛里各位高手的例程,发现基本大家都没有利用到ti的库函数,都是在编辑寄存器的各个位来实现外设的初始化。 我之前用过lm3s系列的arm,感觉用库函数还是很方便的,但找了很久都没有找到ti官方的库函 ...…

查看全部问答>