在mini2440移植声卡后,赶紧找了移植madplay的资料,看上去挺简单的,于是接着移植madplay。
一、 环境和软件介绍
1、主机环境:虚拟机下Fedora9
2、交叉编译器:arm-linux-gcc-4.3.2
3、软件包:zlib-1.2.3、libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz
4、 把以上软件包解压到/opt/studyarm/madplay-make目录下,分别改名为zlib、libid3tag、libmad、madplay。并在madplay-make目录下新建include和lib目录用于存放编译后的头文件和库文件。
二、 移植步骤
1、编译zlib-1.2.3
进入zlib目录进行如下配置:
./configure –prefix=/opt/studyarm/madplay-make 然后修改生成的Makefile文件: ... CC=arm-linux-gcc ... LDSHARED=arm-linux-gcc CPP=arm-linux-gcc -E ... AR=arm-linux-arrc RANLIB=arm-linux-ranlib ... |
执行make
make install
在/opt/studyarm/madplay-make目录下的included和lib目录里生成了编译后的文件。
2、编译libid3tag-0.15.1b.tar.gz
进入libid3tag目录,执行“./configure --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/opt/studyarm/madplay-make”
make
make install
在/opt/studyarm/madplay-make目录下的included和lib目录里生成了编译后的文件。
3、编译libmad-0.15.1b.tar.gz
进入libmad目录,执行“./configure --host=arm-linux --enable-static --disable-shared -disable-debugging --prefix=/opt/studyarm/madplay-make”
因为我使用的是高版本的arm-linux-gcc-4.3.2编译器,make时出现了“cc1: error: unrecognized command line option "-fforce-mem"”错误,这是因为这个高版本的gcc没有"-fforce-mem"参数,解决的办法是在Makefile里面查找"-fforce-mem",将其删除即可make通过。
make
make install
在/opt/studyarm/madplay-make目录下的included和lib目录里生成了编译后的文件。
4、madplay-0.15.2b.tar.gz
进入madplay目录,执行“./configure CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc --host=arm-linux --enable-static --disable-shared CPPFLAGS=-I/opt/studyarm/madplay-make/include LDFLAGS=-L/opt/studyarm/madplay-make/lib”
make
在目录下生成了madplay可执行文件。
三、 测试
将生成的madplay可执行文件拷贝到开发板的/bin目录下,播放U盘或其它地方的歌曲,这里播放的是U盘里面的歌曲。
[rootMrFeng]#ls 01.mp3 2.wma ?? ??? ???? ????? [rootMrFeng]#madplay 01.mp3 MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al. Title: 天空之城(木吉他) Artist: 久石让 Album: 天空之城(Laputa The Castle in 10288 frames decoded (0:04:28.7), +0.3 dB peak amplitude, 31 clipped samples |
到了这里,madplay移植成功,声音播放正常。
四、 总结
移植的过程还是比较简单,主要是配置一些参数。
关键字:s3c2440 madplay 移植
引用地址:
基于s3c2440的madplay移植
推荐阅读最新更新时间:2024-03-16 15:22
龙芯Arch Linux版系统发布:1万个x86软件轻松移植
作为100%国产自主的芯片指令集,龙芯的龙架构不仅自己的硬件体系,OS系统上也在加快生态发展,日前龙架构Arch Linux发行版结束beta,正式支持龙架构,并且移植了1万多款x86平台软件。据龙芯介绍,2021年龙芯公司为方便开发、测试补丁,在向上游社区提交补丁的过程中,将Arch Linux移植到龙架构平台。 后续随着使用Arch Linux的用户不断增加,龙芯也持续进行维护和开发,先后发布了alpha版本(2021.07)、beta1版本(2022.03)、beta2版本(2022.09)。 从beta2版本开始,Arch Linux及时跟踪、集成上游的最新移植成果,采用滚动更新的方式为用户推送升级。 近日龙架构Ar
[嵌入式]
内核移植(2)arch/arm/mach-s3c2440/mach-smdk2440.c
对于s3c2410、s3c2440开发板,它们的CPU Id都是0x41129200,在arch/arm/mm/proc -arm920.S中的_ _arm920_proc_info结构中。 定义开发板参数在arch/arm/mach-s3c2440/mach-smdk2440.c中,如机器类型ID、起始I/O物理地址、Bootloader传入的参数的地址、中断初始化函数等。 arch/arm/kernel/head.S是内核执行的第一个文件。 S3c2440开发板上启动uImage时串口输出乱码的原因,开发板晶振的频率设置有问题。 1、在arch/arm/mach-s3c2440/mac
[单片机]
stm32的USB(二)Fatfs在stm32上的移植
前言 相信大家不会对FAT文件系统感到陌生,在Windows上就能够直接操作FAT文件,Fatfs是一个完全免费和开源的文件系统模块,它支持FATl2、FATl6 和FAT32,支持多个存储媒介,有独立的缓冲区,可以对多个文件进行读/写,在嵌入式系统中得到广泛应用。Fatfs有Fatfs和FatFs/Tiny两个版本,FatFs/Tiny占用RAM较小,但是以更慢的读写速度和更少的API函数为代价,下面以Fatfs版本作介绍大家可以从以下链接下载源码:http://elm-chan.org/fsw/ff/00index_e.html。 移植 Fatfs的层次结构如下图所示: 应用层提供了接口函数,如f_open,f_rea
[单片机]
s3c2440移植openharmony
s3c2440移植openharmony。OpenHarmony是开放原子开源基金会的一个孵化项目,OpenHarmony完全开源开放,OpenHarmony轻量和小型系统比较适合内存小的IOT设备。 OpenHarmony同时提供许多可选的系统组件,设备开发者能够按需配置。系统能够把这些能够选择的组件合成一个系列的系统能力让设备开发者更好的理解和开发。 想对OpenHarmony进行开发、编译、烧录、调测能够使用DevEco Device Tool。 现在的openharmony轻量和小型系统搭建系统环境Windows版本不支持在Windows平台编译,Hi3861除外,其它的只能在Ubuntu平台下编译。
[单片机]
Armboot在EV40评估板上的移植
摘要:介绍Armboot以及EV40评估板的特点;详细讨论Armboot在EV40上的移植并给出主要代码;以Flash编程为例,介绍与评估板相关Armboot命令的实现。
关键词:Armboot AT91M40800 ARM 移植
1 Armboot简介
Armboot是一个bootloader,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的。它支持多种类型的Flash;允许映像文件经由bootp、dhcp、tftp从网络传输;支持从串口线下载S-record或者binary文件;允许内存的显示及修改;支持jffs2文件系统等。Armboot源码公开,可以在http://www.sourceforg.ne
[嵌入式]
s3c2440串口调试函数
#include 2440addr.h #include stdarg.h #include string.h #include stdlib.h #include stdio.h #include ctype.h #define TXD0READY (1 2) #define RXD0READY (1) #define UART_CLK 50000000 // UART0的时钟源设为PCLK #define UART_BAUD_RATE 115200 // 波特率 #define UART_BRD ((UART_CLK / (UART_BAUD_RAT
[单片机]
基于S3C2440的Linux内核移植和yaffs2文件系统制作--Linux源码参数
1.3.2 修改Linux源码中参数 1、解压内核源码 mkdir /opt/studyarm cd /mnt/hgfs/share tar –jxvf linux-2.6.29.1.tar.bz2 –C /opt/studyarm 2、 进入内核目录,修改makefile,并对内核进行默认配置进行修改 193行,修改 ARCH ?=arm CROSS_COMPILE ?=arm-linux- 3、 修改平台输入时钟 找到内核源码arch/arm/mach-s3c2440/mach-smdk2440.c文件,在函数 static void __init smdk24
[单片机]
LTC2207在ARM与FPGA控制下的采集应用
引言 数据采集技术是一种流行且实用的电子技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断发展,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展趋势。 本设计中数据采集系统的核心器件是凌力尔特公司的A/D转换芯片LTC2207。本文研究了在ARM核S3C2440芯片和FPGA的控制下对直流数据和正弦信号的采集应用,并进行了相关的仿真验证。 1 LTC2207芯片介绍 1.1 LTC2207的功能特性 LTC2207是16位A/D转换器,它的采样速率为105Msps。LTC2207是针对输入频率为700 MHz的高频、宽动态范围信号进行数字化处理而设计的。它可以利用PGA前端(输入范
[单片机]