|
发表于 2009-7-24 18:45:53
|
显示全部楼层
【楼主位】 ffxz
下面几个地方你可以参考一下:
Playback MP3 files on STM32 Primer2 with Helix Software decoder (STM32 Primer2,不出意外,下周ourSTM会有销售)
http://www.stm32circle.com/projects/project.php?id=82
Code size: 64KB Author: repzak
Source files included: yes Version: 1.00
Use circleOS: yes (1.7) Creation date: 2009-06-25 21:57:06
Hardware modification: no Modification date: 2009-06-25 21:57:06
Based on the STM32 Primer: Primer2
Downloads: 2358 Views: 906
Vote: Average ratings: 0/5 (0 rates)
Download: MP3-Player-1.00.zip (2779 KB)
Description:
This is an application for STM32 Primer 2, which enables the playback of MP3 files. The decoder is based on Helix MP3 Library. The library has an integer decoder there is suitable for smaller microcontrollers.
The implementation makes it possible to listen to most common variants of MP3. 320kbit files can have small problems due to speed of the microcontroller.
The system also can read ID3V1 out of the file and show it as flying text on the screen.
There has been added touch icons to control the player.
This application is build based on the Play Wave application which Francis from Raisonance and I am the author off, my role was mainly to update the circleOS to play audio from DMA and improve the sound quality.
Note: The Helix library has been ported to thumb-2 code and has been changed to static memory configuration for this project.
https://datatype.helixcommunity.org/Mp3dec
The Helix MP3 Decoder
https://datatype.helixcommunity.org/Mp3dec
The Helix MP3 decoder provides MPEG-compliant decoding of MP3 content. Both floating-point and fixed-point decoder implementations are available. The fixed-point decoder is optimized especially for ARM processors but can run on any 32-bit fixed-point processor which can perform a long multiply operation (two 32-bit inputs generating a 64-bit result) and long multiply-accumulate (long multiply with 64-bit accumulator).
--------------------------------------------------------------------------------
Key Features
Pure 32-bit fixed-point implementation
High-quality C reference code for porting to new platforms
Optimized for ARM processors
Fully reentrant and statically linkable
Optional C++ API for compatibility with Helix clients
Designed for high performance and low power consumption in handheld and mobile devices
Full layer 3 support for
MPEG1 layer 3 - sampling frequencies: 48 KHz, 44.1 KHz, 32 KHz
MPEG2 layer 3 - sampling frequencies: 24 KHz, 22.05 KHz, 16 KHz
MPEG2.5 layer 3 - sampling frequencies: 12 KHz, 11.025 KHz, 8 KHz
Supports constant bitrate, variable bitrate, and free bitrate modes
Supports mono and all stereo modes (normal stereo, joint stereo, dual-mono)
Option to use Intel® IPP performance libraries (if available)
Easy to link in either IPP libraries or Helix code
--------------------------------------------------------------------------------
Technical Specifications
Average CPU Usage
Sample Rate Channels Bit Rate Processor Model (1)
ARM7TDMI ARM9TDMI-REV2 ARM920T ARM9E StrongARM1 XScale
48.0 KHz 2 320 Kbps 30 MHz 24 MHz 27 MHz 20 MHz 20 MHz 20 MHz
44.1 KHz 2 128 Kbps 26 MHz 21 MHz 24 MHz 17 MHz 17 MHz 17 MHz
(1) Tested with ARMulator, simulated zero-wait-state memory
Memory Usage
ROM = 13446 Bytes (const globals)
RAM = 23816 Bytes (heap)
Total Data Memory = 37262 Bytes
Code Size = 21000 Bytes (approximately - depends on compiler)
--------------------------------------------------------------------------------
source code下载地址:
https://helixcommunity.org/viewcvs/datatype/mp3/codec/fixpt/ |
|