设为首页 加入收藏

TOP

s3c2440 UDA1341声卡驱动与madplay播放器移植,(一)
2015-11-21 01:04:00 来源: 作者: 【 】 浏览:10
Tags:s3c2440 UDA1341 声卡驱动 madplay 播放器 移植

?

1.配置声卡UDA1341驱动

因为linux3.0内核中还有mini2440的初始化文件,于是直接进入/arch/arm/mach-s3c2440/mach-mini2440.c中查看后修改得到
 
 
--- mach-smdk2440_o.c 2015-04-24 11:39:20.492017397 +0800 +++ mach-smdk2440.c 2015-04-24 12:26:01.457015793 +0800 @@ -45,6 +45,7 @@ #include 
  
    #include 
   
     +#include 
    
      +#include 
     
       #include 
      
        static struct map_desc smdk2440_iodesc[] __initdata = { @@ -155,8 +156,32 @@ &s3c_device_wdt, &s3c_device_i2c0, &s3c_device_iis, + &uda1340_codec, + &s3c2440_audio, + &samsung_asoc_dma, }; +/* add by handy */ +/* AUDIO */ +static struct s3c24xx_uda134x_platform_data s3c2440_audio_pins = { + .l3_clk = S3C2410_GPB(4), + .l3_mode = S3C2410_GPB(2), + .l3_data = S3C2410_GPB(3), + .model = UDA134X_UDA1341 +}; + +static struct platform_device s3c2440_audio = { + .name = s3c24xx_uda134x, + .id = 0, + .dev = { + .platform_data = &s3c2440_audio_pins, + }, +}; +static struct platform_device uda1340_codec = { + .name = uda134x-codec, + .id = -1, +}; +/* add by handy */ static void __init smdk2440_map_io(void) { s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
      
     
    
   
  


 
 

然后直接make menuconfig即可; PS:复制粘贴也要注意有没有多出空白字符,如果scureCRT的插件装的多的话建议直接用虚拟机文本编辑,一模一样的用虚拟机编辑就能一次通过make。而scureCRT死都不过,一直显示未定义。

首先进入 Device Drivers -->

\

\

\

\

make之后烧录到板子上,若最后打印的一长串信息里找到上述打印出的信息则表示成功 。

2.madplay在S3c2440上移植,顺利播放mp3音乐

交叉编译器环境:arm-linux-gcc-4.5.4
开发板平台: FL2440
Linux内核版本: 3.0

() madplay移植前的准备:
所需源码包:

madplay-0.15.2b.tar.gz, //播放程序的压缩包,MP3播放器的源码
libmad-0.15.1b.tar.gz, //madplay的库文件
libid3tag-0.15.1b.tar.gz //mp3的解码库
zlib-1.1.4.tar.gz //用于文件的压缩与解压
新建文件目录并上传源码包到madplay目录并解压;
[pikaqiu@centos6 ~]$ mkdir madplay
[pikaqiu@centos6 ~]$ mkdir madplay/mad
[pikaqiu@centos6 madplay]$ ls
libid3tag-0.15.1b libmad-0.15.1b mad madplay-0.15.2b zlib-1.1.4

移植第三方程序的主要步骤分别为:解压缩、配置(./configure)、编译(make)、安装(make install);

一般源码包解压缩之后,若已经存在Makefile则可以直接make编译;但大多数情况下需要使用源码包目录下的./configure脚本来配置源码包生成Makefile文件;
我们通常可以使用./configure --help来查看配置选项。

这里我们必须知道以下几个配置参数:

--host: 用于指定平台; 如: --host==arm-linux

--prefix: 用于指定文件的安装路径; 如:--prefix=/home/pikaqiu/madplay/mad

-I指定头文件的路径; 如:-I/home/pikaqiu/madplay/mad/include/

-L指定库文件的路径;如:-L/home/pikaqiu/madplay/mad/lib

--disable-shared使用静态库编译;

如果是要编译到arm板子上跑则在make的时候还需要加上AR(将.o文件打包生成.a的静态库文件)= LD(所链接)= CC(交叉编译器)=

(二)下面开始正式配置,编译:
注意:以下的步骤不能打乱,因为其中有依赖关系;还有每次都需要使用sudo权限,否则可能因权限不够而出错。

1.首先编译zlib-1.1.4

[pikaqiu@centos6 madplay]$ cd zlib-1.1.4/
(1)配置configure文件,生成Makefile
[pikaqiu@centos6 madplay]$sudo ./configure --prefix=home/pikaqiu/madplay/mad
(2)修改Makefile文件
[pikaqiu@centos6 zlib-1.1.4]$ vim Makefile
修改以下三项:
CC=gcc 修改为CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc
AR=ar rc 修改为AR=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar rc
RANLIB=ranlib 修改为RANLIB=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib

(三)编译make
[pikaqiu@centos6 zlib-1.1.4]$ sudo make
若没有错误便是make成功,可以继续下一步
(四)安装make install

2.编译libid3tag-0.15.1b

[pikaqiu@centos6 madplay]$ cd libid3tag-0.15.1b/
(1)配置configure文件,生成Makefile
[pikaqiu@centos6 libid3tag-0.15.1b]$sudo ./configure CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc --host=arm-linux --disable-shared --prefix=/home/pikaqiu/madplay/mad CPPFLAGS=-I/home/pikaqiu/madplay/mad/include/ LDFLAGS=-L/home/pikaqiu/madplay/mad/lib
(2)编译make
[pikaqiu@centos6 lib

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode(2)Add Two Numbers 下一篇C++容易被忽视的基础知识

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: