1.MP3简介
MPEG-1 Audio Layer3(简称MP3)是一种有损音频编码方式,它利用掩蔽效应(一种心理声学模型),将脉冲编码调制(Pulse Code Modulation)音频数据中人耳听觉系统无法察觉的那部分数据去掉,使得MP3能够在音质丢失很小的情况下把音乐文件压缩到很小的程度(1:10 甚至 1:12 的压缩率)。因为其体积小、音质高的特点,MP3已经成为当今最为流行的音频格式。madplay是目前使用较为广泛的一种MP3的解码器,下面将详细介绍如何使用Andes提供的AndeSight集成开发工具将madplay移植到Andes平台。
2.环境及软件介绍
2.1系统环境:
Linux:Fedora 8。
2.2开发环境:
AndeSight v1.4。
AndeSight是晶心科技提供的一种基于nds32架构开发嵌入式工程的图形化的集成开发环境。主要由AndeSight IDE, AndESLive和nds32工具集3个部分组成。
AndeSight IDE为工程师提供了各种友好的界面,包括对嵌入式工程做编辑,编译,运行,调试或者评测等等操作。
AndESLive提供了基于nds32架构的仿真器和一种图形化的虚拟SoC构建模型,它与AndeSight IDE相结合为用户提供了一个虚拟的硬件平台。这个虚拟评估平台提供Andes自行定义ISA的多组系列32位CPU IP以及各种外围设备IP,并且支持用户自定义IP模型。
AndESLive配合AndeSight IDE不仅使得SoC设计者能在计划初期就开始软件设计、侦错、最优化等工作,并对系统架构及功能进行检验,而且使硬件工程师和软件工程师具有一样的能力去制作和修改他们各自的系统模型,可以有效的控制NRE(NonRecurring Engineering)成本,让软件工程师在拿到硬件原型之前,即可以进行软件的开发和优化。
nds32工具集提供了一套在Andes平台上开发嵌入式应用程序所需要的标准工具,例如编译器、调试器、链接器等。
2.3交叉编译器:
nds32le-linux-gcc。
nds32工具集中对应不同的Andes Core型号,不同的系统函数库以及大小端形式等条件,提供了各种对应的交叉编译器。这里我们选用nds32le-linux-gcc。
2.4软件包:
除了源码外,madplay还需要MP3的解码库libmad,以及zlib和libid3tag来正确的读取MP3头段信息。这四个软件包都可以在开源网站上获得。其中,madplay-0.15-1b.tar.gz、libmad-0.15.1b.tar.gz、libid3tag-0.15.1b.tar.gz可以在/zixunimg/eepwimg/sourceforge.net/project/showfiles.php?group_id=12349获取,zlib-1.2.4.tar.gz可以在/zixunimg/eepwimg/zlib.net/获取。