linux2.6.32.2 mini2440平台移植-- UDA1341 音频驱动移植

发布者:angelbaby最新更新时间:2022-10-18 来源: csdn关键字:linux2  6  mini2440  平台移植  UDA1341 手机看文章 扫描二维码
随时随地手机看文章

1.6.1  在初始化文件中加入 UDA1341 设备结构


Linux-2.6.32.2已经完美的支持UDA1341音频芯片的驱动,我们只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注册 UDA1341 平台设备的控制端口就可以了,打开 mach-mini2440.c,添加如下内容:


//在文件首部添加头文件


#include


//在 LCD 平台设备后面添加 UDA1341 设备结构


static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {


.l3_clk = S3C2410_GPB(4),


.l3_data = S3C2410_GPB(3),


.l3_mode = S3C2410_GPB(2),


.model = UDA134X_UDA1341,


};


static struct platform_device s3c24xx_uda134x = {


.name = "s3c24xx_uda134x",


.dev = {


.platform_data        = &s3c24xx_uda134x_data,


}


};


//注册 UDA1341 设备平台到内核中


//这些注册的结构在哪定义的??


static struct platform_device *mini2440_devices[] __initdata = {


&s3c_device_usb,


&s3c_device_rtc,


&s3c_device_lcd,


&s3c_device_wdt,


&s3c_device_i2c0,


&s3c_device_iis,


&mini2440_device_eth,


&s3c24xx_uda134x,


&s3c_device_nand,


};


这样,我们基本就添加好了  UDA1341  音频设备的驱动,接下来我们在内核中配置该驱动。


注意:其实在做完以上工作时还是不能放MP3,没有DSP节点,我后面根据


http://www.arm9home.net/read.php?tid-1481-fpage-0-toread--page-2.html


引用


No device for DAI UDA134X

No device for DAI s3c24xx-i2s


这是ALSA的警告信息,不影响uda1341驱动的。


引用


S3C24XX_UDA134X SoC Audio driver

UDA134X SoC Audio Codec

asoc: UDA134X <-> s3c24xx-i2s mapping ok

ALSA device list:

#0: S3C24XX_UDA134X (UDA134X)


这说明UDA1341 for S3C24xx的ALSA驱动已经成功加载了。需要了解的是,ALSA本身并不会生成/dev/dsp节点,那是OSS驱动的东西。

要在你的系统里使用/dev/dsp节点,你必须确保选中了ALSA的“OSS 模拟”选项。它可以通过在内核配置中的

"Sound card support" ---> "Advanced Linux Sound Architecture" --> "OSS PCM (digital audio) API"

配置。


1.6.2  在内核中配置 UDA1341 设备驱动


在内核源代码目录输入:make  menuconfig 开始配置内核,依次选择如下子菜单,找到音频驱动配置菜单:


Device Drivers    --->


<*> Sound card support    --->


按空格选中"[*]       Preclaim OSS device numbers     ",


再选中"<*>       Advanced


Linux Sound Architecture    --->",并回车进入该子菜单


出现音频驱动体系结构菜单,在这里,我们选择 OSS 接口相关的配置选项,需


要注意的是,这里的 OSS 接口其实是基于 ALSA 接口创建的,因为新的内核中现在都已经改用 ALSA 设计,这里是为了和以前的软件兼容才这样做的,


再选择"<*> ALSA for SoC audio support    --->"子菜单并回车进入,在这里我们可以看到专门为  S3C24xx 系列芯片(包括  S3C2410/2440/2443 等)而做的


配置选项,打开 linux-2.6.32.2/sound/soc/s3c24xx/Makefile 文件就可以看到,


我们的开发板使用的是 UDA1341 音频芯片,在这里当然要选择


"-*- SoC I2S Audio support UDA134X wired to a S3C24XX"了。


退出保存以上各项配置。


1.6.3 mp3 放音测试


在内核源代码目录执行:make zImage,把生成的内核映像文件烧写到开发板,依然使用友善之臂提供的文件系统 root_qtopia,系统启动后,使用系统自带的 madplay 软件播放一首mp3 进行测试,把音箱或者耳机插入开发板的绿色音频输出插座,就可以听到音乐了,


1.6.4  修正驱动中的录音代码


虽然播放 mp3 很正常,但当使用系统自带的录音程序进行录音时,我们发现无法听到任何结果,这是因为开发板的录音电路和 SMDK2440 目标板的电路是有所区别的。


mini2440 开发板使用的录音通道为 VIN2,而 SMDK2440 使用的则是 VIN1,打开 linux-2.6.32.2/sound/soc/codecs/ uda134x.c,在大概 201 行添加如下红色代码:


uda134x->slave_substream = substream;


} else


uda134x->master_substream = substream;


uda134x_write(codec, 2, 2|(5U<<2)); //把录音通道改为 VIN2


return 0;


}


static void uda134x_shutdown(struct snd_pcm_substream *substream,


struct snd_soc_dai *dai)


{


这样,我们就完成了录音驱动的修正,在内核源代码目录下执行:make zImage,重新编译内核并烧写到开发板中。


1.6.5  录音测试


打开 Qtopia 中的"录音机"测试程序,根据提示,点"REC"按钮开始录音,这时对着板上的麦克风说话,可以看到录音的波形,点"STOP"按钮结束录音,此时可以点"PLAY"按钮播放刚才的录音,同时录制的音频文件将以"WAV"格式


自动存储到"文档"中:说明:Qtopia2.2.0 系统自带了一个录音程序,中文名为"语音便签",但它不能正常使用板上的麦克风进行录制。


关键字:linux2  6  mini2440  平台移植  UDA1341 引用地址:linux2.6.32.2 mini2440平台移植-- UDA1341 音频驱动移植

上一篇:linux2.6.32.2 mini2440平台移植-- 串口驱动移植、I2C-EEPROM 驱动移植、看门狗驱动移植
下一篇:linux2.6.32.2 mini2440平台移植-- ADC 驱动移植

推荐阅读最新更新时间:2024-11-02 15:53

STM32CUBEMX开发GD32F303读保护与写保护概述
概述 芯片读保护以后,flash将不可以从外部读取,这样可以防止别人读取或者盗取芯片代码,如果想再次烧录代码,需要解除保护,有时候在代码调试的过程中,也有可能会触发读保护,解除读保护也可以使用代码,也可以使用软件进行读保护解锁。 软件进入读保护 芯片读保护以后,flash将不可以从外部读取,这样可以防止别人读取或者盗取芯片代码,如果想再次烧录代码,需要解除保护,有时候在代码调试的过程中,也有可能会触发读保护,解除读保护也可以使用代码,也可以使用软件进行读保护解锁。 软件进入读保护 打开GD-Link Programmer,点击Target- Security可以进入读保护模式。 这时候会提示是否进入读保护。 进入读保护
[单片机]
STM<font color='red'>32</font>CUBEMX开发GD<font color='red'>32</font>F303读保护与写保护概述
iPhone 6 NFC 供应商恩智浦:期待 NFC 取代车钥匙
     iPhone 6 和 iPhone 6 Plus 终于加入了 NFC 支持,不过目前 iPhone 中的 NFC 芯片只能用于 Apple Pay 支付。通过拆解可以发现,iPhone 6/6 Plus 中的 NFC 芯片来自恩智浦(NXP)。在接受路透社采访时,恩智浦表示,公司对于苹果最新 iPhone 能支持 NFC 非常激动,iPhone 将帮助 NFC 进入新市场,包括汽车领域。 不久之前,有传言称苹果正在与其他合作伙伴谈判,希望在其他领域使用 NFC 技术。将于明年正式发售的 Apple Watch 也将支持 NFC。除了 Apple Pay 外,苹果还希望 iPhone 用户可以使用 NFC 芯片支付公交
[手机便携]
LTC6803-2/LTC6803-4:多节电池的电池组监视器
      描述   LTC ® 6803 是第二代的完整电池监视 IC,内置一个 12 位 ADC、一个精准型电压基准、一个高电压输入多路复用器和一个串行接口。每个 LTC6803 能够测量多达 12 个串接电池或超级电容器的电压。可以把多个 LTC6803 器件堆叠起来以监视一个长电池串中每节电池的电压。每个 LTC6803-2 / LTC6803-4 具有一个可单独寻址的串行接口,允许将多达 16 个 LTC6803-2 / LTC6803-4 器件连接至一个控制处理器并同时运作。每个电池输入具有一个相关联的 MOSFET 电源开关,用于对过度充电的电池进行放电。LTC6803-2 在内部将电池组的底端与 V― 相连
[电源管理]
LTC6803-<font color='red'>2</font>/LTC6803-4:多节电池的电池组监视器
美新开发出车载用2轴加速度传感器
美新(MEMSIC)开发出了用于车身控制的2轴加速度传感器。美国政府规定,2012年以后面向美国市场供货的所有汽车都必须配备VSC(汽车车身稳定性控制)装置,而此次的传感器就是用于配备在该VSC中的产品。 该元件的加速度检测范围为±5g。零g补偿电压为±30mg,这一数字是在-40~105℃的温度范围内实现的。输出接口为SPI。该公司加速度传感器的特点是没有机械可动部分,而且产品供货后的故障发生率一直控制在一位数多的ppm值,因此以前就一直用于车载用途。
[嵌入式]
基于32位单片机MC68HC376的高可靠性系统设计
引言 随着工业技术的不断发展,对单片机控制的要求也越来越高,需要单片机具备更高的反应速度和更强的数据处理能力,各种高性能的新型单片机得到了迅猛的发展和应用。单片机上主要是高速的数字信号,弱信号很容易受到外界的电磁干扰,同时,单片机系统也会发生掉电、死循环等问题。在工业控制场合,一旦控制发生错误,将会造成难以估计的损失。因此,如何提高控制的可靠性是长期以来的一个重要问题。本文介绍了应用32位高性能单片机MC68HC376的一种实际开发方案,同时重点讨论了提高系统可靠性的设计和实现方法。 MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,且支持B
[单片机]
半导体成长动能 明年Q2将再起
    半导体法说登场,晶圆代工龙头台积电(2330)上周法说释出正面讯息,董事长暨总执行长张忠谋除看好明年全球经济可望成长,也乐观未来两年营运成长前景;反观英特尔对本季展望看法保守。从近来科技大厂对后市展望,大致可归纳出,第四季到明年第一季仍属产业库存调整淡季,惟总体经济面无明显恶化情况,明年第二季起,半导体业将恢复成长动能。 日前研究机构Gartner分析,半导体产业库存状况仍在失衡状态,加上终端市场需求不佳,第四季市场状况仍保守,预期第一季持续修正,最快明年第二季库存水位才会趋于平衡,可望恢复常态分配。 而张忠谋在上周法说中针对总经面提出,美国先前虽有债限问题,但已获解决,其他经济数据如新增就业机会、房价等看来都不错,美国整体
[手机便携]
EnerG2公司推出硬质碳纳米结构锂电池阳极材料
EnerG2公司近日推出了一款纳米结构硬碳材料作为锂离子电池的正极材料。据悉,该材料相比标准石墨阳极储容量高出50%。 对电极表面的孔径分布进行改造,能够增加孔径结构的总体表面积,因此其吸附电子的能力将大幅提升从而达到提高储容量的目的。 碳纳米电极属于于无定形、不规律的结构。而传统石墨有着固定的晶体排布结构,即每个锂离子周围吸附着6个碳原子。硬质碳纳米结构不受固定排列方式的限制,因此每个碳原子周围将能够存在更多的锂离子。EnerG2公司利用碳技术平台(Carbon Technology Platform)对聚合物前驱体进行分子结构优化最终使得电极具有相对较高的储容量和首次循环效率。 在对电极表面进行结构改造时,可以随时调整纳米复合
[汽车电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved