基于
libmad
的
MP3
软件解码
一、 前期准备
移植 libmad 之前必须先调通 SD 卡硬件驱动,学会使用 znFAT 的基本读数据功能(参
考 znFAT 实例之“08 文件定位读取数据”)。
Libmad 原来是在 Linux 下面使用的,我们需要做一些修改:
1. 删除 minimad.c/version.c/version.h 等没有用到的文件
2. 由于 znfat 中有一个 config 文件,libmad 也有一个 config 文件,我们将 libmad
的 config 改为 libmad_config.h,避免冲突。然后将 libmad 中#include config.h
全部改为 。
3. 由于我们没有 abort 这个函数,所以我们需要在 global.h 中
将 do { if (!(x)) abort(); } while (0) 这一句注释掉(如上图)
4. 最后我们在 config 文件中添加一行 ,防止编译时出
现“FPM 未选择”的错误。
对于 libmad 文件的修改比较简单,也并非移植的重点,大家可以直接使用我们修改
过的 libmad 文件。经过修改后的 libmad 文件如图:
添加到工程之后如图: