移植madplay到s5pv210下

来源:互联网 发布:tensorflow syntaxnet 编辑:程序博客网 时间:2024/06/11 05:30

注释编译

--prefix:指定你编译之后,执行make install时,生成的目录,没有使用--prefix的话,就会执行默认的目录,什么目录执行之后就知道了
CC=arm-linux-gcc
--host:       编译器类型如用arm-unknown-linux-gnueabi-gcc则填--host=arm-unknown-linux-gnueabi
--disable-debugging:禁止调试
--enable-static:静态库
--enable-shared:动态库
-I :include  所需的头文件路径
-L :lib  所需的库的路径

一 编译zlib-1.1.4


1 cd zlib-1.1.4
2 vi configure
    将
   
    24        AR=${AR-"ar rc"}
   
    25  RANLIB=${RANLIB-"ranlib"}
   
    63  cc=${CC-gcc}
   
     修改为:
   
    AR=${AR-"arm-linux-ar rc"}
   
    RANLIB=${RANLIB-"arm-linux-ranlib"}
   
    cc=${CC-arm-linux-gcc}

3
./configure --prefix=/opt/madplay_source/build

4 make && make install

 

二 编译libid3tag-0.15.1b

1 tar xvzf libid3tag-0.15.1b.tar.gz

2 cd libid3tag-0.15.1b

3 ./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging  --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib


4 make && make install


三 编译libmad-0.15.1b

1 tar -xvzf libmad-0.15.1b.tar.gz

2 cd libmad-0.15.1b


3 ./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging  --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

或者
./configure CC=arm-linux-gcc --prefix=/opt/madplay_source/build --host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib


4 make 

arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_ARM -DASO_INTERLEAVE1 -DASO_IMDCT -I/opt/madplay_source/build/include -Wall -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -fstrength-reduce -fomit-frame-pointer -MT version.lo -MD -MP -MF .deps/version.Tpo -c version.c  -fPIC -DPIC -o .libs/version.o
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] 错误 1


如果此时make,make install就会报错,说是"-fforce-mem"参数不能识别。不知道是什么原因,然后就在网上查了一通,好像说是我机器环境的gcc版本(我的是gcc 4.3.2)过高导致的,所以不能识别其中的"-fforce-mem"参数选项,真是搞不懂,版本高还识别不了。。。
于是乎就打开当前目录下的Makefile文件,去掉里面出现的"-fforce-mem",然后再make,make install就OK了
5

 

6 make install

 四 编译madplay-0.15.2b
 
 1  tar -zxvf madplay-0.15.2b.tar.gz
 2  cd madplay-0.15.2b
 3  ./configure CC=arm-linux-gcc --host=arm-linux --prefix=/opt/madplay_source/build  --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/opt/madplay_source/build/include LDFLAGS=-L/opt/madplay_source/build/lib

 4 make
 
 5 make install
 
 
 
 
 五
 
 1 将build/bin/下的madplay 改名为my_madplay
 
 2 优化
 arm-linux-readelf -d my_madplay
 
 
 Dynamic section at offset 0x24ef8 contains 28 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libid3tag.so.0]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000f (RPATH)                      Library rpath: [/opt/madplay_source/build/lib]
 0x0000001d (RUNPATH)                    Library runpath: [/opt/madplay_source/build/lib]


将需要的库拷贝到开发板上

libm.so.6,libc.so.6在busybox制作根文件系统是已经生成在/lib目录下了,所以只要将/opt/software/madplay/build/lib目录下的libid3tag.so.0文件拷到/lib目录下即可
 
3 cp * /opt/rootfs/sound_bin/ -a
 ll sound_bin/lib
总计 408
-rw-r--r-- 1 root root  84224 08-02 09:25 libid3tag.a
-rwxr-xr-x 1 root root    869 08-02 09:25 libid3tag.la
lrwxrwxrwx 1 root root     18 08-02 09:48 libid3tag.so -> libid3tag.so.0.3.0
lrwxrwxrwx 1 root root     18 08-02 09:48 libid3tag.so.0 -> libid3tag.so.0.3.0
-rwxr-xr-x 1 root root 126265 08-02 09:25 libid3tag.so.0.3.0
-rw-r--r-- 1 root root  98696 08-02 09:37 libmad.a
-rwxr-xr-x 1 root root    796 08-02 09:37 libmad.la
-rwxr-xr-x 1 root root  75600 08-01 17:56 libz.a


4 测试
加载驱动
[root@FriendlyARM /]# insmod snd-soc-wm8960.ko
[root@FriendlyARM /]# insmod snd-soc-mini210-wm8960.ko

[   46.236633] FriendlyARM http://www.arm9.net
[   46.349651] asoc: wm8960-hifi <-> samsung-i2s.0 mapping ok
[root@FriendlyARM /]# fa
fa-network-service  fa_codec_ctrl       fakeidentd          false
[root@FriendlyARM /]# fa_codec_ctrl mini210

[root@FriendlyARM /]# madplay just_like_me.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
          Title: Just Like Me
         Artist: Jeff Hanson
          Album: Son
          Track: 8
           Year: 2003
[  123.413666] EPLL Rate changes from 80000000 to 67738000