首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【急问】关于mp3解码程序的移植问题

【急问】关于mp3解码程序的移植问题

我从网上下的mp3解码程序(基于arm的)包括:
common.h
common.c
decode.h
decode.c
huffman.h
huffman.c
fastimdct.c
Fastsb.c
LAYER3.C

其中LAYER3.C是mp3解码的主程序,我就修改了mp3数据存放的地址和解码后数据的存放地址;

我直接在LAYER3.C中写nios控制的主程序,LAYER3.C中原来的主程序作为子程序调用,用IDE编译的时候出现了这样的错误:
E:/mp3/SD_audio/mp3_syslib/Debug/libmp3_syslib.a(alt_main.o)(.text+0x60): In function `alt_main':
/cygdrive/c/altera/kits/nios2_60/components/altera_hal/HAL/src/alt_main.c:157: undefined reference to `main'
collect2: ld returned 1 exit status

之后,我又用了另外一个方法移植,就是:再建一个c文件写主程序,在文件头添加了:#include “LAYER3.C”,然后在主程序调用LAYER3.C的主程序mp3();结果错误更多,都是mp3()中的错误,而所有的错误都是mp3()中显示:自定义函数和自定义结构体没有定义,可是这些在common.h 、common.c 、decode.h 、decode.c 、huffman.h 、huffman.c 、fastimdct.c 、Fastsb.c
中定义过了。

最后,我又试了,不在文件头添加:#include “LAYER3.C”,编译后显示的是:mp3()(LAYER3.C的主程序)没有定义!

请问我的做法正确吗?出现这个错误是什么原因呢?

请大侠们赐教!

你移植程序到nios中使用,你的方法,就是思路肯定没有问题,毕竟都是一些纯软件的问题。

如果他以前的程序都是标准c写的,那么应该很好调用。

如果中间有汇编,或其他,你的调用要改一些变量,然nios完成相同的功能。

你说的mp3()(LAYER3.C的主程序)没有定义!的问题就是你的函数有没有声明的简单问题,或者没有包含一些头文件,其他的就没有什么好说的了。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

我的主程序是这样的:

#include "basic_io.h"
#include "SD_Card.h"

#include <math.h>
#include "system.h"
#include <stdio.h>
#include <stdlib.h>
#include "COMMON.H"
#include "DECODE.H"
#include "LAYER3.H"  

int main(void)
{ UINT32 i;
  UINT16 voicedata;
  mp3();     //调用mp3解码程序,mp3()是LAYER3.C的主函数
  while(1)
  {
    for(i=0x00000000;i<0x000fffff;i+=2 )
     {      
       while(IORD(AUD_FULL_BASE,0));
               voicedata=IORD(i,0);
               IOWR(AUDIO_0_BASE,0,voicedata);
               IOWR(SEG7_DISPLAY_BASE,0,i);
     }             
         
 }

LAYER3.H是我自己写的,就一句话“void mp3();”

编译之后还是显示mp3()没有定义!

请大侠赐教!!

[此贴子已经被作者于2007-3-21 17:19:40编辑过]

void mp3();是声明,你没有实现函数。就是 void mp3(){;}

如果还不行就没有理由了,你可以将函数定义写到main前面,看看是不是ide有问题。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
这个样子确实很难看出你的问题,首先,你有没有把这些文件添加到你的工程中。添加了之后这种简单的包含应该不会出什么问题。
在交流中前进,共同实现nios的应用。
返回列表