基于stm32的软件音频解码库libmad移植手册
- 格式:pdf
- 大小:660.96 KB
- 文档页数:22
用Direct Sound为MP3解码器libmad播放输出WIN32平台下madplay默认采用WaveOut播放输出,本文实现为其增加Direct Sound输出。
在Windows XP,VC++ 6.0测试通过。
(一)优秀的MP3解码器libmad简介libmad是跨平台的基于命令行的MP3播放解码器,使用定点解码,可用于没有浮点运算的嵌入式系统。
(二)下载及测试1、从官方网站下载madplay-0.15.2b.tar.gz,libmad-0.15.1b.tar.gz,libid3tag-0.15.1b.tar.gz,还要从下载libz-1.1.4.tar.gz,共四个文件。
将四个压缩包保存在同一目录,例如d:\madplay。
2、用WINRAR“解码压到当前目录”方法将四个压缩包解压,在d:\madplay下将有四个文件夹:madplay-0.15.2b,libmad-0.15.1b,libid3tag-0.15.1b,libz-1.1.4。
3、用VC++ 6.0打开D:\madplay\madplay-0.15.2b\msvc++下的madplay工程。
修改VC++ 6.0的编译环境:Tools -> Options -> Directories标签 -> Directories框下增加如下两行:D:\MADPLAY\LIBMAD-0.15.1B\MSVC++D:\MADPLAY\LIBID3TAG-0.15.1B点击OK保存设置退出。
再为编译连接后的可执行文件指定运行参数:Project -> settings -> 点中左侧madplay -> 右侧Program arguments框内填入你硬盘上保存的一个MP3文件,例如:D:\MP3\test.mp3,单击OK保存设置退出。
按Ctrl+F5编译连接运行,就可以听到播放你选择的MP3歌曲了。
(三)为madplay增加Direct Sound输出madplay采用WaveOut作为播放输出,用DS输出的优点不再我说了吧。
【STM32H7的DSP教程】第6章ARMDSP源码和库移植⽅法(MDK5的AC5和AC6)第6章 ARM DSP源码和库移植⽅法(MDK5的AC5和AC6)本期教程主要讲解ARM官⽅DSP源码和库的移植以及⼀些相关知识的介绍。
6.1 初学者重要提⽰6.2 DSP库的下载和说明6.3 DSP库版本的区别6.4 DSP库的⼏个重要的预定义宏含义6.5 使⽤MDK的AC6编译器优势6.6 DSP库在MDK上的移植(AC5源码移植⽅式)6.7 DSP库在MDK上的移植(AC5库移植⽅式)6.8 DSP库在MDK上的移植(AC6源码移植⽅式)6.9 DSP库在MDK上的移植(AC6库移植⽅式)6.10 升级到最新版DSP库的⽅法6.11 简易DSP库函数验证6.12 总结6.1 初学者重要提⽰1. MDK请使⽤5.26及其以上版本,CMSIS软件包请使⽤5.6.0及其以上版本。
2. MDK的⼯程创建,下载和调试⽅法,在V7⽤户⼿册有详细说明:。
3. 鉴于MDK的AC6(ARM Compiler 6.X)编译器在浮点处理上的强劲性能,每个例⼦将必做⼀个AC6版,⽽且ARM编译好的DSP库也开始直接采⽤AC6。
4. MDK AC6有两个地⽅在使⽤的时候要注意:⼯程⽬录切记不要有中⽂路径,⽽且不要太长,否则会导致⽆法使⽤go to def以及调试的时候不正常。
MDK AC6⼯程模板的汉字编码问题,在本章6.8⼩节有详细说明。
6.2 DSP库的下载和说明下⾯详细的给⼤家讲解⼀下官⽅DSP库的移植。
6.2.1 DSP库的下载DSP库是包含在CMSIS软件包(Cortex Microcontroller Software Interface Standard)⾥⾯,所以下载DSP库也就是下载CMSIS软件包。
这⾥提供三个可以下载的地⽅:⽅式⼀:STM32CubeH7软件包⾥⾯。
每个版本的Cube软件包都会携带CMSIS⽂件夹,只是版本⽐较⽼,不推荐。
基于STM32芯片的音频播放器设计作者:吴社民来源:《科技视界》2014年第07期【摘要】本方案提出一种基于STM32F10X系列芯片的MP3解决方案。
STM32F10x系列芯片是ST公司基于ARM公司的Cortex-M3内核设计的一款低功耗、高性能、低门数、多接口的嵌入式微处理器芯片【关键词】STM32;SD Card;FAT32;MP30 引言本方案采用ST公司的STM32F103VBT6芯片完成MP3/WMA音频文件的解码播放功能。
其中STM32F103VBT6为主控芯片,采用VS1003芯片进行硬件解码,MP3/WMA格式音频文件存储在SD卡中。
由于采用新的数据压缩标准,MP3文件具有良好的音效和始于传输的体积大小。
本方案完成的功能包括:(1)SD卡文件的读写(2)FAT32文件系统的读写(3)支持“上一曲/下一曲”、“顺序播放”功能(4)支持歌词同步1 硬件设计1.1 器件介绍1.1.1 Cortex-M3内核Cortex-M3是ARM公司推出的新一代32位嵌入式微处理器内核。
它采用ARM-V7-M架构,具有高性能、低功耗、少门数的特点;因此,非常适合嵌入式系统领域的设计和应用。
Cortex-M3具有一个与内核系统紧密耦合的嵌套向量终端控制器NVIC(Nested Vectored Interrupt Controller)。
该NVIC可配置8级抢占式、256级优先级的1—240个外部中断,同时支持咬尾中断、迟到中断技术,大大缩短了中断响应时间。
1.1.2 STM32芯片STM32xxx系列芯片是ST公司基于ARM Cortex-M3设计的一个32位微处理器系列。
该系列处理器在继承ARM Cortex-M3内核优点的基础上,扩展了其外部接口、增强其定时器功能、增加了A/D、D/A模块。
1.1.3 VS1003音频解码芯片VS1003是VSL公司生产的一款单片MP3/WMA/MIDI音频解码和ADPCM编码芯片。
基于STM32的MP3播放器设计与实现设计和实现基于STM32的MP3播放器需要完成以下几个主要步骤:硬件设计、软件编程以及调试。
以下将详细描述每个步骤,并提供基于Keil MDK的完整源代码。
硬件设计:1.硬件平台选择:选择适合于MP3播放器的STM32系列单片机,如STM32F4系列。
2.音频芯片选择:选择具有I2S或SPI接口的音频解码芯片,如VS1053芯片。
3.外设选择:选择适当的外设来控制用户输入(如按键)、显示屏幕和存储介质(如SD卡)。
4.硬件连接:按照芯片和外设的接口要求,连接单片机、音频解码芯片、按键、显示屏幕和SD卡等。
软件编程:1.硬件初始化:初始化单片机和外设的引脚配置、时钟和中断等。
2.外设驱动编写:编写外设的驱动程序,包括音频解码芯片驱动、SD 卡驱动、按键驱动、显示屏幕驱动等。
3.MP3解码器:基于音频解码芯片的通信协议,编写MP3解码器的相关程序,实现文件的解码和音频数据的播放。
4.用户接口:编写用户界面程序,实现按键控制、显示屏幕显示、菜单操作等功能,以便用户操作音乐播放器。
5.文件系统:编写文件系统程序,实现对SD卡中音乐文件的读取和管理。
调试:1. 编译:使用Keil MDK进行编译,检查程序是否能够正确编译通过。
3.调试:通过串口或调试器连接STM32单片机,查看程序运行过程中的输出信息,检查是否存在问题并进行调试。
以下是一个基于STM32F4系列的MP3播放器的部分源代码,完成了初始化、外设驱动、MP3解码器和用户接口的编写。
```c#include "stm32f4xx.h"#include "vs1053.h"#include "sdcard.h"#include "lcd.h"#include "key.h"void Delay(uint32_t nCount)for(; nCount != 0; nCount--);int main(void)LCD_Init(;Key_Init(;VS1053_Init(;SD_Init(;while(1)if (Key_Scan( == KEY_PLAY)SD_Play(;}}void EXTI0_IRQHandler(void)if (EXTI_GetITStatus(EXTI_Line0) != RESET)VS1053_TriggerInterrupt(;EXTI_ClearITPendingBit(EXTI_Line0);}```以上代码只是一个简单的示例,具体实现需要根据所选择的硬件平台和外设来编写相应代码,例如音频解码芯片的驱动程序、SD卡的读写程序等。
Design and Realization of MP3 Player Based on Qtopia Core in ARM - Linux
作者: 汪英[1] 余展然[2] 彭楚武[2]
作者机构: [1]长沙通信职业技术学院,湖南长沙410015 [2]湖南大学电气与信息工程学院,湖南长沙410082
出版物刊名: 湖南工业职业技术学院学报
页码: 13-15页
主题词: 嵌入式Linux Qtopia Core libmad MP3播放器
摘要:介绍了嵌入式GUI开发环境Qtopia Core和基于定点运算的高精度MPEG音频解码库libmad的移植,然后设计和实现了以ARM-Linux和Qtopia Core为平台的MP3播放器。
该播放器效率高,支持播放列表和均衡器,界面友好,具有全中文界面,能够满足中高端嵌入式产品的需求,在嵌入式产品的应用中具有一定的价值。